整型数表示
计算机使用固定长度的位模式来表示整数。主要有两种表示方式:无符号数和有符号数(补码)。
无符号数表示
无符号数只能表示非负整数。对于一个 位的无符号数,其表示的数值范围为 。
- 每一位的权重都是正的
- 例如:
1111(4位)= 8 + 4 + 2 + 1 = 15
有符号数表示(补码, Two’s Complement)
补码是目前几乎所有计算机系统采用的有符号整数表示方法。最高位(符号位)具有负权重,其余位的权重为正。
- 最高位 的权重为
- 例如(4位):
1111= -8 + 4 + 2 + 1 = -11000= -8 + 0 + 0 + 0 = -8(最小的负数)
范围与不对称性
对于 位补码表示:
| 名称 | 值 | 公式 |
|---|---|---|
| 最大值(TMax) | 011…1 | |
| 最小值(TMin) | 100…0 |
补码表示的一个重要不对称性:
即负数的范围比正数大1。这是因为补码需要表示0,所以正数(包括0)和负数各占一半,但0在正数侧,所以正数比负数少一个。例如8位补码:TMax = 127,TMin = -128。
补码取反
对补码 x 取相反数(求 -x)的快捷方法:
-x = ~x + 1
即按位取反再加1。这适用于 TMin 之外的所有数(TMin 的相反数超出了表示范围,即溢出)。
相关笔记
链接到
- 上一个知识点:2.2 位运算
- 下一个知识点:2.4 有符号数与无符号数的转换