2.数据表示与编码
2.1 进制转换
- 二进制转八进制 从小数点向左、右3位一分组
- (010 011 100 . 010 )2 = ( 234 . 2 )8
- 二进制转十六进制 从小数点向左、右4位一分组
- (1001 1100 . 0100 )2 = ( 9C . 4 )16
- 对于上面两种转换,小数部分 不足位数要补零凑足 ,否则出错!
- 十进制转二进制
- 整数部分 小数部分 分开计算
- 整数部分 小数部分 分开计算
2.2 机器码(机器数)
-
原码:增加符号位,数值位不变
- 正零、负零两个零 (0的表示不唯一):
- [+0]原 = 0.000…0
- [-0]原= 1.000…0
- 加、减运算方式不统一,所以用补码来计算
-
反码
- 正数 的反码: 与原码相同;
- 负数 的反码: 符号位为1 , 数值位是将原码的数值位按位取反
- [+0]反= 0.000…0
- [ -0]反= 1.111…1 。
-
补码
-
正数的补码: 符号位为0; 正数补码与正数的原码、反码相同;
-
负数的补码: 符号位为1 ; 数值位逐位取反, 末位加1。
-
零的补码形式唯一 :
- [+0.0000]补= [ -0.0000]补= 0.0000
-
双符号位补码 (变形补码)
-
补码加减法的实现
- [ -Y]补=[ [Y]补 ]补
- 即:对 [Y]补 逐位取反(包括符号位), 再在最低位加1。
-
-
移码
- 仅用于表示定点整数(纯整数),
- [x]移 =x+ 2^n , n为 x的二进制位数
- 小结:移码和补码数值位相同, 符号位相反 。
2.3 数的定点、浮点表示方法 (※)
浮点数标准 IEEE754
- S是数的符号位,占1位,在最高位,“0”表示正数,“1”表示负数。
- 尾数M 用原码, 指数用移码表示(得到E )
- x = (-1)^S ×(1. M )×2^E -127
- 指数e =E -127 。