128 127
128 -128
128 128
编译错误
评论的很多是在误人子弟…128带上符号位是九位,截断成8位后实际意义是-0也就是10000000这个补码在转原码应先减一后取反(无关符号位,这也是为什么我觉得很多人误人子弟的地方)10000000-1=11111111。取反后还是10000000 我们说八位带符号二进制表示的范围是-127~127这当中总共有几个数呢?没错是256个数,256=127*2+2,所以0就有+0和-0的区别,为了充分利用这一个空间,才规定的-0=-128的,没错,这是规定!
这个是Java编码方式决定的,Java中正数用源码表示,负数用补码表示,第一位是符号位。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题