0

当我使用

small =Byte.parseByte("01101001",2)

然后使用这个:

String binary = Integer.toBinaryString(small & 0xFF);
binarynumber= Integer.parseInt(binary);

他们给出不同的值。二进制数 = 1101001

前导0怎么了?

-edit- 我想我明白了,感谢所有回复!

4

2 回答 2

1

为什么要有前导零?您如何期望Byte.parseByte("01101001",2)和的不同结果Byte.parseByte("1101001",2)?两者都返回相同的byte.

这同样适用于Integer.parseInt()

如果要在输出中使用前导零,则必须使用格式字符串。

于 2013-09-24T05:35:40.040 回答
0

整数#parseInt()

总是返回一个Integerie 十进制表示,它永远不会有前导零。

当使用第二个参数给出的基数进行解析时,返回一个 Integer 对象,该对象包含从指定 String 中提取的值。第一个参数被解释为表示由第二个参数指定的基数中的有符号整数,就像将参数提供给 parseInt(java.lang.String, int) 方法一样。结果是一个表示字符串指定的整数值的 Integer 对象。

于 2013-09-24T05:35:54.277 回答