整数的k进制表示与存储#
N=±[an⋅kn+an−1⋅kn−1+…+a1⋅k1+a0⋅k0]其中a1…an 是0~k-1中的一个数码例如十进制数 365:
365=3×102+6×101+5×100二进制数 1011:
10112=1×23+0×22+1×21+1×20=8+0+2+1=1110TIP常常在数的右下角加上角标注明k进制
十进制整数转k进制数#
方法:除基取余倒序排
例如,将十进制数 45 转换为二进制:
- 45 ÷ 2 = 22 余 1
- 22 ÷ 2 = 11 余 0
- 11 ÷ 2 = 5 余 1
- 5 ÷ 2 = 2 余 1
- 2 ÷ 2 = 1 余 0
- 1 ÷ 2 = 0 余 1
将余数倒序排列得到:101101,因此 45 的二进制表示为 101101。
补码表示法#
计算机中整数通常使用补码表示法来表示和存储整数。 补码表示法的优点在于它简化了加减运算,使得加法器可以同时处理正数和负数。
补码的定义#
对于一个 n 位二进制数:
- 正数的补码就是它本身。
- 负数的补码是对其绝对值的二进制表示取反后加1。
例如,对于 8 位二进制数:
- +5 的补码是 00000101
- -5 的补码是 11111011
补码的范围#
对于一个 n 位二进制数,补码的范围是:
- 正数范围:[0,2n−1−1]
- 负数范围:[−2n−1,−1]
例如,对于 8 位二进制数:
- 正数范围:[0,127]
- 负数范围:[−128,−1]