带符号二进制整数
带符号整数是有“+”或“-”符号的数字。如果使用n位来表示带符号二进制整数,则n位中,1位用于表示数字的符号,其余(n-1)位用于表示数字本身的数值部分。
一个现实世界的例子是世界各地不同城市的温度列表(精确到最接近的数字)。显然,它们是带符号整数,例如+34、-15、-23和+17。这些数字及其符号必须仅使用二进制表示或位在计算机中表示。
在计算机中表示带符号数字的方法有很多:
符号位和数值位
反码
补码
表示带符号数字最简单的方法是符号位和数值位(SM)方法。
**符号位和数值位** - 符号位和数值位二进制格式是最简单的概念格式。在这种表示带符号数字的方法中,最高有效位 (MSD) 具有额外的含义。
如果MSD为0,我们可以像处理任何普通的无符号整数一样计算该数字。我们也将其视为正数。
如果MSD为1,则表示该数字为负数。
其他位表示数字的数值(绝对值)。以下是一些带符号十进制数字及其在SM表示法中的等效值,假设字长为4位。
| 带符号十进制 | 符号位和数值位 |
|---|---|
| +6 | 0110 |
| -6 | 1110 |
| +0 | 0000 |
| -0 | 1000 |
| +7 | 0111 |
| -7 | 1111 |
范围
从上表可以看出,如果字长为n位,则可以表示的数字范围是从-(2n-1 -1)到+(2n-1 -1)。下表显示了字长和可以表示的SM数字的范围。
| 字长 | SM数字范围 |
|---|---|
| 4 | -7 到 +7 |
| 8 | -127 到 +127 |
| 16 | -32767 到 +32767 |
| 32 | -2147483647 到 +2147483647 |
请注意,位序列1101对应于无符号数13,以及SM表示法中的-5。其值仅取决于用户或程序员如何解释位序列。
**反码** - 这是在计算机中表示带符号整数的方法之一。在这种方法中,最高有效位 (MSD) 具有额外的含义。
- 如果MSD为0,我们可以像解释任何普通的无符号整数一样计算该数字。
- 如果MSD为1,则表示该数字为负数。
其他位表示数字的数值(绝对值)。
如果数字为负数,则其他位表示数字数值的反码。
下表显示了一些带符号十进制数字及其在反码表示法中的等效值,假设字长为4位。
| 带符号十进制 | 反码 |
|---|---|
| +6 | 0110 |
| -6 | 1001 |
| +0 | 0000 |
| -0 | 1111 |
| +7 | 0111 |
| -7 | 1000 |
范围
从上表可以看出,如果字长为n位,则可以表示的数字范围是从-(2n-1- 1)到+(2n-1 -1)。下表显示了字长和可以表示的反码数字的范围。
| 字长 | 反码数字范围 |
|---|---|
| 4 | -7 到 +7 |
| 8 | -127 到 +127 |
| 16 | -32767 到 +32767 |
| 32 | -2147483647 到 +2147483647 ±2 × 10+9 (约) |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP