对于有符号位八位,为什么最小值不是-127,而是-128呢?

来源:3-10 提升补充部分:补码2

飞上天看一看

2020-12-18

有符号8位,为啥最小值是-128二不是-127呢?11111111不是-127吗?

写回答

2回答

慕瓜8231985

2020-12-18

0b00000000(0)

递增

0b01111111(127) 

+1
0b10000000(-128)
递增

0b11111111(-1)

127是有符号数最大正值,在加1跳转到最小值-128 ,可以通过逐渐递增达到 0b11111111(-1)
怎么算真值可以参考老师的公式

1
0

quickzhao

2020-12-18

你仔细看下补码的表示方法,符号位除去,所有7位都填1,2^7 = 128,所以最小值是-128.

0
1
慕妹3585395
感觉并不是这样。实际上-128补码表示为 10000000, 直接用补码到真值的公式 -1 * 2^(8-1) = -128. 和7个1无关,原码根本无法表示-128. (补码到真值并不一定要经过原码)
2024-07-13
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程