lomoxxt 发表于 2019-7-30 09:10:41

求问-128的补码是多少,内带思考过程请高手指正

128的补码是 1000 0000

用取反加一的方法求-128的补码:
取反1 0111 1111
加一1 1000 0000

所以-128的补码为 1 1000 0000,有问题吗?请高手指正

Neverturnback 发表于 2019-7-30 09:58:55

如果这个一个8位的数据,能表示正负的话,1000 0000 表示的不是128而是-128;

Neverturnback 发表于 2019-7-30 10:01:08

本帖最后由 Neverturnback 于 2019-7-30 10:09 编辑

如果只是单纯计算补码的话;128二进制码(8位)1000 0000;
取反:0111 1111;
加一:1000 0000;
所以-128的补码是1000 0000;
所以你为什么要在1000 0000前面加个1?

当然 1 1000 0000也可以看作是-128的补码(在一个9位的数据中,但是计算机里面的数据一般都是以一个字节为单位的(也就是8位),不存在9位的情况)
128的二进制码(9位)0 1000 0000
取反:1 0111 1111;
加一:1 1000 0000;

lomoxxt 发表于 2019-7-30 10:18:31

Neverturnback 发表于 2019-7-30 10:01
如果只是单纯计算补码的话;128二进制码(8位)1000 0000;
取反:0111 1111;
加一:1000 0000;


啊,这样就明白了。
我是之前看过小甲鱼的一个关于补码的帖子
https://fishc.com.cn/forum.php?mod=viewthread&tid=67124&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571
里面有一句是这样写:
“比如 -3,就是先将 10000011 按位取反(除了符号位),得到 11111100,再 +1 得到 11111101。”
然后我就一直把负数的二进制的最左一位放上1{:5_100:}
谢谢谢谢大神!!!

lomoxxt 发表于 2019-7-30 10:21:40

Neverturnback 发表于 2019-7-30 09:58
如果这个一个8位的数据,能表示正负的话,1000 0000 表示的不是128而是-128;

啊,明白了。。带符号的话,范围在-128~127

Neverturnback 发表于 2019-7-30 10:22:58

lomoxxt 发表于 2019-7-30 10:18
啊,这样就明白了。
我是之前看过小甲鱼的一个关于补码的帖子
https://fishc.com.cn/forum.php?mod=vie ...

记得给最佳吖!谢谢{:5_109:}我QQ1169756818一起学习可以加我(备注写上: printf("鱼友:%s"), 论坛ID){:5_91:}

lomoxxt 发表于 2019-7-30 10:26:34

Neverturnback 发表于 2019-7-30 10:22
记得给最佳吖!谢谢我QQ1169756818一起学习可以加我(备注写上: printf("鱼友:%s"), 论坛ID){:5_9 ...

嘻嘻好的小哥哥!

Neverturnback 发表于 2019-7-30 10:27:27

lomoxxt 发表于 2019-7-30 10:26
嘻嘻好的小姐姐!

我是小哥哥!!!{:5_99:}

lomoxxt 发表于 2019-7-30 10:28:07

Neverturnback 发表于 2019-7-30 10:27
我是小哥哥!!!

{:9_227:}头像好可爱
页: [1]
查看完整版本: 求问-128的补码是多少,内带思考过程请高手指正