C语言基础:变量与运算符详解
1. 二进制表示法与补码表示法
在计算机中,数字可以用多种二进制方式表示。“字节和位”部分提到的字节计算方法适用于表示非负整数(无符号整数)。当计算机需要表示可能为正或负的整数时,则使用补码表示法。
补码表示负数的步骤:
- 先写出该数正数版本的二进制表示。
- 对所有位取反(将1变为0,0变为1)。
- 将取反后的结果加1。
例如:
- 数字9的二进制表示是00001001,那么 -9 的补码表示为:先将位取反得到11110110,再加1,结果是11110111。
- 数字2的二进制表示是00000010, -2 的补码表示为:取反得到11111101,再加1,结果是11111110。
需要注意的是,计算机对无符号数和有符号数使用不同的表示法。无符号数的范围是0到255,而补码表示法中,一个字节可以表示从 -128 到 127 的值,两种表示法都能让一个字节有256种不同的值。
2. 不同字节数的存储范围
- 1字节(8位)内存可以存储 $2^8 = 256$ 种可能的值。
- 2字节(16位)内存可以存储 $2^{16} = 65,536$ 种可能的值。如果是无符号的2字节,能存储的值范围是0到65,535;如果是有符号的2字节,能存储的值范围是 -32,768 到 32,767。
- 4字节的 int 可以存储 $2^{32} = 4,294,967,296$ 种可能的值。有符号的4字节 int 能存储的值范围是 -2,147,483,648
C语言变量与运算符解析
超级会员免费看
订阅专栏 解锁全文
1471

被折叠的 条评论
为什么被折叠?



