欢迎各界计算机爱好者加入,弘扬极客精神!

补码和原码的转换是怎么计算的?

0 喜欢 0 不喜欢
补码和原码的转换是怎么计算的?
最新提问 11月 7 分类:C/C++ | 用户: Strlonve (8,308 分)  

登录 或者 注册 后回答这个问题。

7 个回答

0 喜欢 0 不喜欢
补码分两种情况: 
(1)正数的补码:与原码相同。 
      例如,+9的补码是00001001。 
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 
      例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 
     0000111按位取反为1111000;再加1,所以-7的补码是11111001。
最新回答 11月 8 用户: Mr.Devil (7,368 分)  
0 喜欢 0 不喜欢
正数的补码与原码相同

负数的补码:除符号位,其余位取反,再加1
最新回答 11月 15 用户: 一二一 (2,892 分)  
0 喜欢 0 不喜欢
如果一个数为正数,则他的补码和原码相同

如果是一个负数的话,除了符号位,其余全部取反,最后再加1
最新回答 11月 28 用户: Qyoung (2,872 分)  
0 喜欢 0 不喜欢

若为正数,则补码与原码相同
若为负数,则补码为除符号位,其余位取反且再加1

最新回答 11月 28 用户: 全场最尬LTC (2,040 分)  
0 喜欢 0 不喜欢
正数不变,负数除符号位其他的取反然后加1
最新回答 12月 5 用户: L.R. (2,340 分)  
0 喜欢 0 不喜欢
分两种情况,以八位原码转换为例:
正数(符号位为0的数)补码原码相同.
负数(符号位为1的数)变为补码时符号位不变,其余各项取反,最后在末尾+1
例如:原码01100110,补码为:01100110
原码11100110,先变反码:10011001,再加1变为补码:10011010
最新回答 12月 5 用户: 花随忆逝 (1,064 分)  
0 喜欢 0 不喜欢

(1)正数的补码:与原码相同。 
      例如,+9的补码是00001001。 
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 
      例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 
     0000111按位取反为1111000;再加1,所以-7的补码是11111001。 
已知一个数的补码,求原码的操作分两种情况: 
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。 
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。 
     例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为   “1”;其余7位1111001取反后为0000110;再加1,所以是10000111。

最新回答 12月 7 用户: 孤杜 (2,278 分)  
...