/**
* Integer.toBinaryString 32位二进制表示
* int一共8个字节即32位
* 最高位是符号位 从2的0次开始
* 正数范围:2^31-1 2147483647
* 负数范围:-2^31 -2147483648
* 本身toBinaryString函数,输出负数是32位的
*/
public static String intToBinary32(int num) {
String binaryStr = Integer.toBinaryString(num);
if(num >= 0){ //负数直接返回就行
while (binaryStr.length() < 32) {
binaryStr = "0" + binaryStr;
}
}
return binaryStr;
}
public static void main(String[] args) {
System.out.println(intToBinary32(-2));
System.out.println(intToBinary32(2));
}
输出:
11111111111111111111111111111110
00000000000000000000000000000010