首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何10000000取反为01111111 符号位不是不变吗

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

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

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

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

热点排行