常用进制
-
二进制:
- 1.1 二进制是计算机采用的表示数字的方式, 每个数位上只有0和1;
- 1.2 任何整数一定可以采用二进制的方式表示, 小数的二进制这里不多说;
- 1.3 字节内部采用二进制方式记录数字, 一个字节分成八段, 每个分段有一个编号, 最右边分段编号是0, 向左逐渐递增
- 1.4 相邻分段之间有2倍关系, 某个分段的数字相当于2的编号次方, 如图:
|2⁴ | 2³ | 2² | 2¹ | 2º |
-
十六进制:
每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15
各个进制的相互转换
-
二进制转十进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方。
如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。
因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。
例如:
- 将二进制11111111转为十进制计算如下所示:
1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=
128+64+32+16+8+4+2+1=255
结果为:255
- 将二进制11111110转为十进制计算如下所示:
1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+0*2^0=
128+64+32+16+8+4+2+0=254
结果为:254
- 将二进制00101010转为十进制计算如下所示:
(0 * 2的7次方)+(0 * 2的六次方)+(1* 2的五次方)+(0 * 2的四次方)+(1 * 2的三次方)+ (0 * 2 的二次方)+ (1* 2的一次方)+(0 * 2的零次方)
0 + 0 + 32 + 0 + 8 + 0+ 0+ 2 + 0 = 42
结果为:42
-
十进制转二进制:
-
除2取余逆序排列法
它的基本思想是不断将十进制数除以2,每次记录余数,直到商数为0为止。
然后我们将所有余数按相反的顺序排列
得到二进制数。
例如:
- 将十进制数
255
转换为二进制数,我们可以进行如下的运算:
255 / 2 = 127 余 1
127 / 2 = 63 余 1
63 / 2 = 31 余 1
31 / 2 = 15 余 1
15 / 2 = 7 余 1
7 / 2 = 3 余 1
3 / 2 = 1 余 1
1 / 2 = 0 余 1
然后我们将所有余数按相反的顺序排列
,即得到二进制数1111 1111
。
- 将十进制数
128
转换为二进制数,我们可以进行如下的运算:
128 / 2 = 64 余 0
64 / 2 = 32 余 0
32 / 2 = 16 余 0
16 / 2 = 8 余 0
8 / 2 = 4 余 0
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1 / 2 = 0 余 1
然后我们将所有余数按相反的顺序排列
,即得到二进制数1000 0000
。
将十进制数
9
转换为二进制数,我们可以进行如下的运算:将十进制数
9
转换为二进制数,我们可以进行如下的运算:
9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1 / 2 = 0 余 1
然后我们将所有余数按相反的顺序排列
,即得到二进制数1001
。
同样的方法可以用于将任意十进制数转换为二进制数。
-
16进制转10进制:
像10进制数一样,把16进制数看成有个位数,十位数,百位数……
将“个位数”乘上16的0次方(16^0),
将“十位数”乘上16的1次方(16^1),
将“百位数”乘上16的2次方(*16^2),
最后将所有上面得到的数加起来就是他的十进制数了
例如:
将十六进制的 (10A) 转换成10进制的数
A*1=10
0*16=0
1*16^2=256
所以所得的数为10+0+256=266
将十六进数2AF5转换成10进制的数
5×16º+F×16¹+A×16²+2×16³=10997
也可以用竖式表示:
第0位: 5×16º=5
第1位: F×16¹=240
第2位: A×16²=2560
第3位: 2×16³=8192
将十六进数B2625转换成10进制的数
5×16º+ 2×16¹+ 6×16²+ 2×16³ + 2×16⁴ = 140837.
也可以用竖式表示:
第0位: 5×16º = 5
第1位: 2×16¹ = 32
第2位: 6×16² = 1536
第3位: 2×16³ = 8192
第4位: 2×16⁴ = 131072
-
10进制转16进制:
这个有点麻烦……将给定的十进制整数除以基数16,余数便是等值的16进制的最低位。
将上一步的商再除以基数16,余数便是等值的16进制数的次低位。
重复上一步骤,直到最后所得的商等于0为止。
各次除得的余数,便是16进制各位的数,
最后一次的余数是最高位
例如:
10进制的 (100) 变为16进制
先把100除以16,得到6余数为4,则“个位数”为4;
用6除以16,得到0余数为6,则“十位数”为6。
所以100的16进制为“64”。