计算机组成与体系结构
一、数据表示
1.进制转换
- R进制转十进制使用按权展开法
例如:二进制10100.01=1×24+0×23+1×22+0×21+0×20+0×2-1+1×2-2
例如:七进制604.01=6×72+0×71+4×70+0×7-1+1×7-2
- 十进制转R进制使用短除法
例如: 2|94 余数 0
2|47 1
2|23 1
2|11 1
2|5 1
2|2 0
2|1 1
得到的结果为:1011110
短除法后的得到的余数逆序排放
-
二进制转八进制与十六进制
二进制转八进制
方法:3位二进制数按权展开相加得1位八进制数(注:3位二进制转八进制是从右往左开始转换,不足3个时在最左边补0)
二进制 10001110 转为八进制
110=1×22+1×21+0×20 =6
001=0×22+0×21+1×20=1
010=0×22+1×21+0×20=2
结果为:216
二进制转为十六进制
方法:4位二进制数按权展开相加得1位十六进制数(注:4位二进制转十六进制是从右往左开始转换,不足4个时在最左边补0)
十六进制基本特点:它由16个字符0~9以及A,B,C,D,E,F组成
对应关系如下:0000=0 0001=1 0010=2 0011=3 0100=4 0101=5 0110=6 0111=7 1000=8 1001=9 1010=A 1011=B 1100=C 1101=D 1110=E 1111=F
二进制10001110转为十六进制
1000=8 1110=E
结果为:8E
2.原码反码补码移码及数值表示范围
2.原码反码补码移码及数值表示范围
数值1 | 数值-1 | |
---|---|---|
原码 | 0000 0001 | 1000 0001 |
反码 | 0000 0001 | 1111 1110 |
补码 | 0000 0001 | 1111 1111 |
移码 | 1000 0001 | 0111 1111 |
1、原码
把一个数转成二进制的形式,一般确定用一个字节也就是8bit来表示二进制,如果转成的二进制不足以8位,那在高位补充0即可。最高的为符号位(带符号的情况下)对于正数而言符号位为0,负数符号位为1。
原码是不能在计算机里直接做加减乘除运算的,例如:
1的原码:00000001
-1的原码:10000001
若是原码相加,00000001+10000001=10000010
得到的结果却是-2的原码
2、反码
正数:反码与原码相同
负数:符号位不动,把后面所有位置在原码基础上取反
3、补码
正数:补码与原码相同
负数:在反码的基础上+1
4、移码
移码一般在特定的场合使用,比如在浮点数运算中用作阶码。
移码是在补码的基础上把首位取反,其余部分