(一)、数据的表示
1、进制转换
-
x进制转十进制使用按权展开法
二进制:10100.01 = 1x2^4 + 1x2^2 + 1x2^-2 七进制:604.01 = 6x7^2 + 4x7^0 + 1x7^-2
-
十进制转x进制使用短除法(除到数据<进制数时)
94转二进制 余数 2|94 0 2|47 1 2|23 1 2|11 1 2|5 1 2|2 0 1 结果为:1011110
-
二进制转八进制与十六进制
转八进制,3位二进制为1位八进制 10 001 110 2 1 6 转十六进制,4位二进制位1位十六进制 1000 1110 8 E
2、码制
-
数值为正时:
原码 = 反码 = 补码,移码 = 补码的符号位取反
-
数值为负时:
反码 = 原码的符号位外取反
补码 = 反码 + 1
移码 = 补码的符号位取反
-
例如:
数值 1 数值 -1 计算 1-1( 看作1+(-1) ) 原码 0000 0001 1000 0001 1000 0010 显然错误 反码 0000 0001 1111 1110 1111 1111 显然错误 补码 0000 0001 1111 1111 0000 0000 正确 移码 1000 0001 1111 1111 1000 0000 显然错误,答案为 -0
3、数值表示范围
-
定点整数
假设数据位数n=4 原码:1111 ~ 0111,范围为:-7 ~ 7
-
定点小数
假设数据位数n=4,负数个位数也算一位 原码:-0.111 ~ 0.111,范围为:-7/8 ~ 7/8
码制 | 定点整数 | 定点小数 |
---|---|---|
原码 | -(2^(n-1) - 1) ~ +(2^(n-1) - 1) | -(1 - 2^-(n-1)) ~ +(1 - 2^-(n-1)) |
反码 | -(2^(n-1) - 1) ~ +(2^(n-1) - 1) | -(1 - 2^-(n-1)) ~ +(1 - 2^-(n-1)) |
补码 | -2^(n-1) ~ +(2^(n-1) - 1) 少了 -0 | -1 ~ +(1 - 2^-(n-1)) |
移码 | -2^(n-1) ~ +(2^(n-1) - 1) 少了 -0 | -1 ~ +(1 - 2^-(n-1)) |
4、浮点数的运算
-
浮点数表示
N = 尾数 * 基数^指数 如:3.14 x 10^3 尾数为:3.14 基数为:10 指数为:3
-
运算过程:对阶(指数) > 尾数计算 > 结果格式化
-
特点:
- 一般尾数用补码,阶码用移码
- 阶码的位数决定数的表示范围,位数越多范围越大
- 尾数的位数决定数的有效精度,位数越多精度越高
- 对阶时,小数的指数向大数看齐
- 对阶是通过较小的尾数右移实现的
-
浮点数的存储格式(1表示+,0表示-)
阶符 阶码 数符 尾数 3.14 x 10^5 0 5 0 3.14 -3.14 x 10^-5 1 5 1 3.14