当我使用
small =Byte.parseByte("01101001",2)
然后使用这个:
String binary = Integer.toBinaryString(small & 0xFF);
binarynumber= Integer.parseInt(binary);
他们给出不同的值。二进制数 = 1101001
前导0怎么了?
-edit- 我想我明白了,感谢所有回复!
为什么要有前导零?您如何期望Byte.parseByte("01101001",2)
和的不同结果Byte.parseByte("1101001",2)
?两者都返回相同的byte
.
这同样适用于Integer.parseInt()
。
如果要在输出中使用前导零,则必须使用格式字符串。
总是返回一个Integer
ie 十进制表示,它永远不会有前导零。
当使用第二个参数给出的基数进行解析时,返回一个 Integer 对象,该对象包含从指定 String 中提取的值。第一个参数被解释为表示由第二个参数指定的基数中的有符号整数,就像将参数提供给 parseInt(java.lang.String, int) 方法一样。结果是一个表示字符串指定的整数值的 Integer 对象。