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

补码的有关问题

2011-12-21 
补码的问题课本上的描述:对于负数的补码,求其真值时候,将符号位以外的有效值按位求反后,在末位加1,就可以

补码的问题
课本上的描述:
对于负数的补码,求其真值时候,将符号位以外的有效值按位求反后,在末位加1,就可以得到该负数补码对应的真值

我现在给定 [X]补码=(10000000)2

  X = -([0000000]求反 +1)2
  = -([1111111]+1)2
  =-(10000000)2
  =(-128)10
因此[X]补码=(10000000)2

的真值是-128 请问,我这样做,对吗?




[解决办法]
我的记忆是

连同符号位(事实上,如果用补码表示,符号位根本没有必要提出,只是恰好负数的最高位为1而已)
一起取反,然后+1

10000000补 = 01111111 + 1 = 10000000

所以10000000为-128
[解决办法]
正数的真值的补码与真值是一样的
负数:先末位减1然后把所有位求反,再在前面加负号就可以了
[解决办法]
1.若要得到一个负二进制数的绝对值(称为真值),只要各位(包括符号位)取反,再加1,就得到真值。   如:[X]补码:1000 0000   各位取反:0111 1111   加1:10000000(真值)
2.真值为128,负数则为-128

个人意见,仅供参考
[解决办法]
http://zhidao.baidu.com/question/308750116.html
百度的一个说法:
10000000这个补码表示的哪个数的补码呢? 
其实这是一个规定,这个数表示的是-128 

热点排行