
java有符号整形转为二进制
常见问答
如何在Java中将有符号整型数字转换为二进制字符串?
我想知道在Java中,怎样把一个有符号的整数转换成对应的二进制表示字符串?
使用Integer.toBinaryString方法
Java提供了Integer.toBinaryString(int i)方法,可以将一个有符号的整数转换为相应的二进制字符串表示。该方法返回的是无符号的二进制字符串,因此对于负数,结果是以补码形式表示的二进制。
Java中如何处理负数的二进制表示?
当我将一个负数转换成二进制字符串时,得到的结果和正数差别很大,这是为什么?
负数以补码形式表示
Java中的有符号整数采用补码表示法。将负数转换成二进制时,得到的是对应的补码表示。因此,负数的二进制字符串可能以1开头,并且长度可能不一样。使用Integer.toBinaryString时,如果需要固定长度,可以补齐前导0。
怎样在Java中得到固定长度的二进制表示(例如32位)?
我希望将整型数字转成二进制字符串,并且保证字符串长度为32位,如何实现?
利用String.format方法补齐二进制字符串
可以先用Integer.toBinaryString方法得到原始二进制字符串,然后用String.format和格式化指令%32s补齐前导空格,接着用replace将空格替换为0。这样就可以获得一个长度固定为32位,包含前导0的二进制字符串。