计算机硬件基础
数据的表示
R进制表示及互转
数据的表示方法有二进制,八进制,十进制,十六进制等。
R进制,通常的说法就是逢R进1。可以用的数为R个,分别是0,1,2,···,R-1。例如我们常用的十进制,十进制的基数是10,即可用到的数码个数为10,一位可以表示的数是0、1、2、3、4、5、6、7、8、9。
为了把不同进制的数分开表示,避免造成混淆,通常采用下标的方式来表示一个数的进制,如十进制数125表示为(125)10,八进制数137表示为(137)8,如果是十六进制,通常在后面加大写字母“H”表示十六进制,如10BFH表示十六进制数10BF。
进制转换规则
二进制转十进制
整数转换规则
2x |
X=7 |
X=6 |
X=5 |
X=4 |
X=3 |
X=2 |
X=1 |
X=0 |
权位 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
对应数值 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
小数转换规则
2x |
X=-1 |
X=-2 |
X=-3 |
X=-4 |
X=-5 |
X=-6 |
X=-7 |
权位 |
2-1 |
2-2 |
2-3 |
2-4 |
2-5 |
2-6 |
2-7 |
对应数值 |
1/2 |
1/4 |
1/8 |
1/16 |
1/32 |
1/64 |
1/128 |
例如: 二进制数 11011.01 的值可计算如下
11011.01=1× 24+1× 23+0× 22+1× 21+1× 20+0× 2-1+1× 2-2=16+8+2+1+1/4=27.25
十进制转二进制
整数转换规则
用十进制除2取余法,直到商为0。
除数 |
被除数 |
余数 |
2 |
250 |
|
2 |
125 |
0 |
2 |
62 |
1 |
2 |
31 |
0 |
2 |
15 |
1 |
2 |
7 |
1 |
2 |
3 |
1 |
2 |
1 |
1 |
|
0 |
1 |
得到的二进制数,从下往上记录余数。
结果为: 11111010
小数转换规则
用小数部分乘2取整法,直到没有小数。
乘数 |
被乘数 |
整数 |
2 |
0.6875 |
|
2 |
1.375 |
1 |
2 |
0.75 |
0 |
2 |
1.5 |
1 |
2 |
1 |
1 |
得到的二进制数,从上往下记录整数。
结果为: 0.1011
二进制与八(十六进制)互转
整数转换规则
八进制转换规则 |
十六进制转换规则 |
从右到左将每3位二进制数转换为八进制数即可,最后不足3位的,则在最高位补0 |
从右到左将每4位二进制数转换为十六进制数即可,最后不足4位的,则在最高位补0 |
二进制 |
八进制 |
001 011 110 |
1 3 6 |
小数转换规则
八进制转换规则 |
十六进制转换规则 |
从左到右将每3位二进制数转换为八进制数即可,最后不足3位的,则在最低位补0 |
从左到右将每4位二进制数转换为十六进制数即可,最后不足4位的,则在最低位补0 |
二进制 |
八进制 |
0.100 011 110 |
0.4 3 6 |
二进制 |
十六进制 |
0.1000 1110 0 |
0.8 F |
原码、反码、补码、移码
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中,用一个数的最高位作为符号位,整数为0,负数为1。
因为第一位是符号位,所以机器数的形式值不等于真正的数值。
名称 |
原码 |
反码 |
补码 |
移码(增码) |
定义 |
原码是指符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。 |
反码通常是用来由原码求补码或由补码求原码的过度码。反码表示法和原码表示法一样,都是在数值前面增加了一位符号位,正数的反码于原码相同,负数的反码符号位为1,其余各位为改数绝对值的原码按位取反得到的值。 |
在计算机系统中,数值一律用补码来表示和存储。补码表示法和原码表示法一样,都在数值前面增加了一位符号位,正数的补码与原码相同,负数的补码是该数的反码加1,这个加1就是“补” |
移码(又叫增码)是符号位取反的补码,一般用指数的移码减去1来作为浮点数的阶码,引入的目的是保证浮点数的机器零为全0。 |
正数 |
0000 1011 |
0000 1011 |
0000 1011 |
|
负数 |
1000 1011 |
1111 0100 |
1111 0101 |
|
定点整数表示数范围 |
-(2n-1-1) ~2n-1-1 |
-(2n-1-1) ~2n-1-1 |
-2n-1~2n-1-1 |
|
定点小数表示数范围 |
-(1-2(n-1)) <X<1-2(n-1) |
-(1-2(n-1)) <X<1-2(n-1) |
-1<X<1-2(n-1) |
|