【发布时间】:2015-05-02 08:37:12
【问题描述】:
我正在使用 java 内置的 Integer.toBinaryString(myInt) 转换为二进制字符串,然后将该 32 位字符串转换为 8 位字符串。
我的问题在于,将数字转换回有符号整数时,我失去了符号。
例子:
我的智力 = -5。
二进制表示 = 11111011。
转换回整数:251。
我的一些代码:
//Converts an integer to 8-bit binary.
public static String convertTo8BitBinary(int myNum){
String intToConv = Integer.toBinaryString(myNum);
//the number is less than 8-bits
if(intToConv.length()<8){
String append="";
for(int i = 8 - intToConv.length(); i>0;i--){
append += "0";
}
intToConv = append+intToConv;
//the number is more than 8 bits
}else {
intToConv = intToConv.substring(intToConv.length() - 8, intToConv.length());
}
return intToConv;
}
//Converts an 8-bit binary string to an integer.
public static int convertToIntegerFromBinary(String b){
return Integer.parseInt(b,2);
}
有什么办法可以保留这个标志吗? Integer.parseInt(b,2) 是否不适用于有符号整数?是否有适用于已签名二进制文件的基数?
【问题讨论】:
标签: java binary parseint radix