C++ 中的有符号数与无符号数
C++ 中,使用固定位数表示整数时,需要区分有符号数和无符号数。相同的二进制表示,对于有符号数和无符号数,其代表的十进制数值可能不同。
例如,使用 16 位二进制表示时:
- 无符号数的取值范围是 0 到 65535。
- 有符号数的取值范围是 -32768 到 32767。
当数值超过有符号数表示范围时,会出现溢出。例如,32767 加 1 会变成 -32768。
以下表格展示了部分二进制数对应的有符号数和无符号数:
| 二进制 | 无符号数 | 有符号数 |
| -------------- | -------- | -------- |
| 0000000000000000 | 0 | 0 |
| 0000000000000001 | 1 | 1 |
| … | … | … |
| 0111111111111110 | 32766 | 32766 |
| 0111111111111111 | 32767 | 32767 |
| 1000000000000000 | 32768 | -32768 |
| 1000000000000001 | 32769 | -32767 |
| … | … | … |
| 1111111111111110 | 65534 | -2 |
| 1111111111111111 | 65535 | -1 |
8.66MB
文件大小:
评论区