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 * 2e+P
- 以十进制数187.125为例
将十进制数转换为二进制数 187.125(D)=1011 1011 . 001(B)
将小数点移动左边第一个非零数之后得: 1.0111 0110 01 * 27 其中7代表小数点向左移动了七位
加上单精度的固定偏移量127
得浮点数 1.0111 0110 01 * 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] 补 ] 补
相关文章:
-
2021-12-10
-
2022-01-13
-
2021-11-30
-
2021-12-30
-
2021-06-07
-
2021-05-16
-
2022-01-04
-
2021-12-24