Java中(01111>>2)和(1111>>2)为什么这两个的运算结果会不一样?
展开全部
找到原因了。0开关,当作8进制了。
Integer.toBinaryString(01111)= 1001001001, (01111>>2)=146
Integer.toBinaryString( 1111)=10001010111, ( 1111>>2)=277
Integer.toBinaryString(01111)= 1001001001, (01111>>2)=146
Integer.toBinaryString( 1111)=10001010111, ( 1111>>2)=277
追问
Integer.toBinaryString(01111)= 1001001001
Integer.toBinaryString( 1111)=10001010111
为什么算下来结果会不同?谢谢!
追答
进制不同、数就不同,结果当然不同了。
Integer.valueOf("1111", 8)= 585
Integer.valueOf("1111", 10)= 1111
Integer.toBinaryString(01111)= 1001001001 (01111>>2)=146
Integer.toBinaryString( 1111)=10001010111 ( 1111>>2)=277
0开头,是8进制数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询