读书人

为何10000000取反为01111111 符号位不

发布时间: 2012-09-14 23:00:49 作者: rapoo

为什么10000000取反为01111111 符号位不是不变吗?
网上有一个哥们说(byte)128 输出为-28 原因是: 10000000 取反为01111111 我有点迷糊~~ 符号位不是不变吗?

到底是不是10000000 在计算机中只会当初-128

[解决办法]
(byte)128已经越界了,byte的范围是-128-127,你输出要输出(byte)128的话数据就溢出了,自然输入-128了。计算中存的是补码,正数的原码,反码和补码相同,对于负数取补码,符号位是1,数值位是将原码按位取反再在最低位加1.

读书人网 >J2SE开发

热点推荐