1. 机器数与真值
- 输入数据后,以二进制的形式储存在计算机
- 二进制的表示形式为机器数
- 带有符号的对应数据称为机器数的真值
- 机器数的特点
- 符号的数值化:规定以最高位为符号位,用0来表示正数,1表示负数
- 计算机中只表示整数或纯小数
- 机器数所表示的数值范围有限
2. 二进制原码、反码、补码
- 二进制中正数的原码、反码、补码表示形式相同
- 原码
- 原码实际上是数值化的符号位加上真值的绝对值
- 正零:[+0] =0000 0000 ,负零[-0] = 1000 0000
- 数值范围
最小编码 | [-0] | [+0] | 最大编码 |
---|
1111 1111 | 1000 0000 | 0000 0000 | 0111 1111 |
-127 | -0 | +0 | 127 |
- 反码
- 负数的反码对其原码除符号位以外逐位取反得到
- 正零 [+0] =0000 0000 ,负零[-0] = 1111 11111
- 反码的反码即为原码
- 反码仅作为补码的过度
最小编码 | [-0] | [+0] | 最大编码 |
---|
1000 0000 | 1111 11111 | 0000 0000 | 0111 1111 |
-127 | -0 | +0 | 127 |
- 补码
- 补码是计算机处理有符号数运算的常用的方法
- 负数的反码位原码取反末位加1
- 补码没有正负零之分,[±0] = 0000 0000 。八位二进制补码1000 0000表示 -128
- 一个数的补码的补码就是原码本身
最小编码 | -6 | [0] | 最大编码 |
---|
1000 0000 | 1111010 | 0000 0000 | 0111 1111 |
-128 | -6 | 0 | 127 |
3. 定点数与浮点数
二进制的运算中有整数还有小数
1.定点数
- 定点整数:约定机器数的小数点在机器数的最右端,称定点小数
- 顶点小数:约定计算数的小数点在符号位之后,有效值部分的最高位之前,我们称为纯小数
2. 浮点数
IEEE标准,浮点数是通过科学计数法来存储,将一个二进制数N移动小数点到左边第一个非零数之后得到纯小数M,所移动的位数用2的e次方幂表示,2的e次方*2的P次方,其中p代表不同精度的偏移量
得浮点数 N=1.M *
2
e
+
P
2^{e+P}
2e+P
- 以十进制数187.125为例
将十进制数转换为二进制数 187.125(D)=1011 1011 . 001(B)
将小数点移动左边第一个非零数之后得: 1.0111 0110 01 *
2
7
2 ^{ 7}
27 其中7代表小数点向左移动了七位
加上单精度的固定偏移量127
得浮点数 1.0111 0110 01 *
2
134
2 ^{ 134}
2134
符号位 | 阶码 | 尾数 |
---|
0 | 1000 0110 | 0111 0110 0100 0000 0000 000 |
精度 | 符号位 | 阶码 | 尾数 | 偏移量 | 有效数字位 |
---|
32 | 1 | 8 | 23 | 127 | 7~8 |
64 | 1 | 11 | 52 | 1023 | 15~16 |
4. 二进制的运算
- 定点数的加减法运算
- 使用补码进行加减运算,将符号位也已一起参加加减运算,运算时最高位的进位省略
- 运算公式X+Y = [ [X]补 + [Y] 补 ] 补