数据的表示
进制转换
1)R进转十进制使用按权展开法:
将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。
例如二进制10100.01=1×2^4+1×2^2+1×2^-2
例如七进制604.01=6×7^2+4×7^0+1×7^-2
2)十进制转R进制使用短除法:
例如将94转换为二进制数
2 | 94 余数 0
2 | 47 1
2 | 23 1
2 | 11 1
2 | 5 1
2 | 2 0
1---------->1
得到的结果为:1011110
注意:十进制转其他进制,除数是欲转成的进制,最终结果是取余数,并且是从下往上的顺序
3)二进制转八进制与十六进制数
八进制:连续三位二进制数转换为十进制数便是八进制数相应的数值
十六进制数:连续四位二进制数便是八进制数相应的数值
例如:
10 001 110
2 1 6
1000 1110
8 E
原码反码补码移码
数值1 数值-1 1-1
原码 0000 0001 1000 0001 1000 0010
反码 0000 0001 1111 1110 1111 1111
补码 0000 0001 1111 1111 0000 0000
移码 1000 0001 0111 1111 1000 0000
原码:二进制表示,最高位为符号位(正数:0,负数:1)
反码:正数不变
负数符号位不变,其余全取反
补码:正数不变
负数是在反码的基础上加一
移码:在补码的基础上首位取反(是符号位)
----------------------------------------------
正数:
原码、反码、补码都相同
移码符号位取反
负数:
反码是原码的符号位不变,其余全取反
补码是反码+1
移码是在补码的基础上符号位取反
数值表示范围
原码 -{(2^n-1)-1}—{(2^n-1)-1}
反码 -{(2^n-1)-1}—{(2^n-1)-1}
补码 -(2^n-1)—{(2^n-1)-1}
例如:
n=8时:
原码:-127~127
反码:-127~127
补码:-128~127
补码比原码、反码多一位,原因是零,原码和反码+0:0000 0000、-0:1000 0000表示出来是不一样的,但补码+0:0000 0000、-0:0000 0000
浮点数运算
浮点数表示:
N = M*R^e
其中M称为尾数,e是指数,R为基数
步骤:
对阶--->尾数计算--->结果格式化
注意:
对阶一般是低的往高的对
例如:
1.19 x 10^2
1.19为尾数
10为指数
2为基数