⼆进制、⼋进制、⼗六进制之间的关系
⼀、从⼗进制到⼆进制
如果有⼈问:
10+10=?
您可能会不加思索地回答:“等于20。”这样的回答对不对呢?可以说对,也可以说不对,这要进⾏具体的分析。说对,是因为我们平时都是⽤⼗进制,也即⽤逢⼗进⼀的⽅法来进⾏计算的。但如果从下⾯即将介绍的⼆进制,即逢⼆进⼀的观点来看,那么,上述回答则是错的。
我们的祖先,很早以前就创造了⼗进制,并将它作为计数的基础,这是因为⼈类有⼗个⼿指和⼗个脚趾这个天⽣的计算⼯具。⼏千年来,⼈类⼀直沿⽤⼗进制,这是因为在⼀般情况下,使⽤⼗进制⽐⽤其他进制要⽅便得多。
但是,在⽇常⽣活中,并不是全都采⽤⼗进制来计数的。例如,⼀年有⼗⼆个⽉,这是⼗⼆进制;⼀⼩时等于六⼗分钟,⼀分钟等于六⼗秒,这是六⼗进制;⼀公尺等于三市尺,这是三进制;鞋、袜都是以双来计算的,⼀双等于两只,这是⼆进制。等等。
计算机作为⼀种计算⼯具,采⽤哪⼀种进制计数呢?计算机是由⼤量的电⼦器件组成的,在这些电⼦器件中,电路的通和断、电位的⾼和低,⽤两种数字符号“1”和“0”分别表⽰,容易实现。⼆进制的运算法则很简单,加法法则四个,乘法法则四个,即:
0+0=0,0+1=1,1+0=1,1+1=10;0×0=0,0×1=0,1×0=0,1×1=1
考虑到运算简便、节省器件、容易实现、经济、可靠等因素,因此,在计算机内部通常⽤⼆进制代码来作为内部存储、传输和处理信息的计数⽅法。⼆、⼗进制
⼗进制数计数的特点是“逢⼗进⼀”。为了表⽰⼗进制的某位数,需要10个数字0,1,2,3,4,5,6,7,8,9,就是说⼗进制的基数为10。
在⼗进制数中,不同数位上的数字所表⽰的值是不相同的。例如在⼗进制数163和1267中,数字6都出现在⼗位数的位置上,因此,这两个数中的数字6的值都是60。通常,我们把某⼀固定位置上的计数单位叫做位权,例如:
个位数的位权为100=1 (基数10的0次⽅)
⼗位数的位权为101=10 (基数10的1次⽅)
百位数的位权为102=10×10=10 (基数10的2次⽅)
千位数的位权为103=10×10×10=1000 (基数10的3次⽅)
……
由上述可见,在⼗进制计数中,各位上的位权值是基数10的若⼲次⽅。因此,任何⼀个⼗进制数都可以⽤横式展开式(位权表⽰法)来表⽰。例如:
(7852)10=7×103+8×102+5×101+2×100
三、⼆进制
1.⼆进制的计数
所谓⼆进制计数,即每⼀位只有两个数,要么是0,要么是1,⽽且顾名思义,是“逢⼆进⼀”。因此,⼆进制计数的基数为2。
在⼗进制中,每个数可以⽤横式分解成个、⼗、百、千,……各位数之和相加,例如:
(163)10=1×100+6×10+3×1
同样,在⼆进制中,我们也可以⽤横式来分解⼆进制数。例如,⼆进制数1010等于⼗进制数的多少呢?
(1010)2= (1000)2 + (10)2
对应⼗进制的2×2×2=8对应⼗进制的2
在这⾥,⼆进制的10包括两个⼆进制位,因为是逢⼆进⼀,每增加1位就乘以2。同样,⼆进制1000包括⼆进制的4个位,每增加1位也乘以2,所以,⼆进制的1000等于⼗进制的2×2×2=8。因此,⼆进制的1010等于⼗进制的10,即(1010)2=(10)10。按照这个原则,要表⽰⼗进制的10,需要有4
个⼆进制位,它们之间的对应关系如表2-1所⽰。
⼗进制数⼆进制数
0 1 0000 0001
2 3 4 5 6 7 8 9 10
0010
0011
0100
0101
0110
0111
1000
1001
1010表2-1 ⼆进制的计数
2.⼆进制数转换成⼗进制数
与⼆进制计数类似,根据位权表⽰法,在⼆进制数中的每⼀位数字在不同位置上具有不同的值,⽽且⼆进制各位上的位权值是基数2的若⼲次⽅,例如:
20=1
21=2×1=2
22=2×2=4
23=2×2×2=8
……
将⼆进制数转换成⼗进制数的⽅法是:
(1)把这个⼆进制数的最低⼀位(第0位)乘以2的0次⽅(即20),倒数第⼆位(第1位)乘以2的1次⽅(即21),……,⼀直到最⾼位(第n位)乘以2的n次⽅(即2n)。
(2)最后将各项乘积相加,得到的结果就是⼆进制数所对应的⼗进制数。
例2-1 把⼆进制数1101101转换成⼗进制数。
解:(1101101)2 =1×26+1×25+0×24+1×23+1×22+0×21+1×20
=64 +32+0+8+4+0+1
=109
∴ (1101101)2=(109)10
3.⼗进制数转换成⼆进制数
将⼗进制数转换成⼆进制数的⽅法是:
(1)将这个⼗进制数除以2,得到⼀个商数和余数;再将得到的商数除以2,⼜得到⼀个商数和余数;这样⼀直继续下去,直到商数等于0为⽌。
(2)第⼀次得到的余数是对应⼆进制数的最低位,最后⼀次得到的余数为对应的⼆进制数的最⾼位,其它余数依次类推。
这种转换⽅法称为“除2反向取余法”。
例2-2 把⼗进制数163转换成⼆进制数。
解:⽤竖式:
然后按从⾼位到低位顺序排列取其余数,便为这个⼗进制数所对应的⼆进制数。即(163)10=(10100011)2
⼆进制数,也可以⽤英⽂字母B来表⽰,例如(10100011)2=10100011B
我们可以将这个⼆进制数转换成⼗进制来验算。
(10100011)2=1×27+1×25+1×21+1×20=(163)10
例2-3 将⼗进制1023转换成⼆进制数。
解:
二进制与十六进制的转换表∴ (1023)10=(1111111111)2
这个例⼦说明,⽤⼗位数⼆进制,就能表⽰最⼤值可到1023的⼗进制数,也即能表⽰0~1023共1024个⼗进制数。这就解答了前⾯提到的为什么计算机⽤⼆进制作为数的最基本单位⽐⽤⼗进制作为数的最基本单位要更加节省元件的问题。
四、⼋进制
1.⼋进制的计数
在计算机中,所有的信息都是以⼆进制的⽅式来加以储存和运算的。但是,⼆进制数位数太多,冗长难记,所以⼈们常常将它写成⼋进制和⼗六进制的⽅式。
在⼋进制计数中,为了表⽰⼋进制的某位数,需要8个数字0,1,2,3,4,5,6,7。因此,⼋进制的基数为8,它的计数特点是“逢⼋进⼀”。
2.⼋进制数转换成⼗进制数
将⼋进制数转换成⼗进制数,与⼆进制数转换成⼗制进制数类似,可以⽤横式展开式(位权表⽰法)来完成。
例2-4 将⼋进制数653转换成⼗进制数。
解:(653)8 =6×82+5×81+3×80
=384+40+3
=427
∴ (653)8=(427)10
3.⼗进制数转换成⼋进制数
将⼗进制数转换成⼋进制数,与⼗进制数转换成⼆制进制数类似,可以⽤“除8反向取余法”来完成。
例2-5 把⼗进制数427转换成⼋进制数。
解:⽤竖式:
然后按从⾼位到低位顺序排列取其余数,便为这个⼗进制数所对应的⼋进制数。也即(427)10=(653)8
⼋进制数,也可以⽤英⽂字母Q来表⽰,例如(653)8=653Q
五、⼗六进制
1.⼗六进制的计数
⼗六进制,顾名思义是逢⼗六进⼀,它在计算机上的作⽤,是⽤来缩短冗长的⼆进制数,以便于阅读和使⽤。在计算机中,⼗六进制常⽤来缩写⼆进制地址。⼗六进制的数除0~9以外,还⽤A、B、C、D、E、F等6个字母来对应表⽰⼗进制的10、11、12、13、14、15这六个数字。因此,⼗六进制的基数为16,它的计数特点是“逢⼗六进⼀”。
表2-2列出了⼗进制、⼗六进制、⼋进制和⼆进制的计数。
⼗进制数⼗六进制数⼋进制数⼆进制数
0 1 2 3 0
1
2
3
1
2
3
0000
0001
0010
0011
4 5 6 7 8 9 10 11 12 13 14 15 16 4
5
6
7
8
9
A
B
C
D
E
F
10
4
5
6
7
10
11
12
13
14
15
16
17
20
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
2.⼗六进制数转换成⼗进制数
将⼗六进制数转换成⼗进制数,与⼆进制数转换成⼗制进制数类似,可以⽤横式展开式(位权表⽰法)来完成。
例2-6 将⼗六进制数47A转换成⼗进制数。
解:(47A)16=4×162+7×161+10×160
=1024+112+10
=1146
∴ (47A)16=(1146)10
3.⼗进制数转换成⼗六进制数
将⼗进制数转换成⼗六进制数,与⼗进制数转换成⼆制进制数类似,可以⽤“除16反向取余法”来完成。
例2-7 把⼗进制数1146转换成⼗六进制数。
解:⽤竖式:
然后按从⾼位到低位顺序排列取其余数,便为这个⼗进制数所对应的⼗六进制数。也即(1146)10=(47A)16
⼗六进制数,也可以⽤英⽂字母H来表⽰,例如(1146)10=47AH。
六、⼆进制、⼋进制、⼗六进制之间的关系
1.⼆进制与⼋进制之间的转换
由于8=2×2×2,即8=23。可知⼀位⼋进制数相当于3位⼆进制数。
(1)⼆进制数转换成⼋进制数
将⼀个⼆进制数转换成⼋进制数,只要把⼆进制数从右往左每三位计算出对应的⼀位⼋进制数(不⾜三位的,前⾯添加“0”补⾜三位)。例2-8 将⼆进制数11011010101转换成⼋进数。
解:⼆进制数: 011 011 010 101
↓↓↓↓
⼋进制数:3325
∴(11011010101)2=(3325)8
(2)⼋进制数转换成⼆进制数
将⼀个⼋进制数转换成⼆进制数,只要把每位⼋进制数⽤对应的三位⼆制数来代替。
例2-9 将⼋进制数3675转换成⼆进制数。
解:⼋进制数:3675
↓↓↓↓
⼆进制数: 011 110 111 101
∴(3675)8=(11110111101)2
在将⼋进制数转换成⼆进制数时,最后得到的⼆进制数最⾼位的“0”往往都可以去掉。
2.⼆进制与⼗六进制之间的转换
由于16=2×2×2×2,即16=24。因此,⼀位⼗六进制数相当于4位⼆进制数。
(1)⼆进制数转换成⼗六进制数
将⼀个⼆进制数转换成⼗六进制数的⽅法是:只要把⼆进制数从右往左每四位为⼀组计算出对应的⼀位⼗六进制数(不⾜四位的,前⾯添加“0”补⾜四位)。
例2-10 将⼆进制数10011001111转换成⼗六进制数。
解:⼆进制数: 0100 1100 1111
↓↓↓
⼗六进制数:4CF
∴(10011001111)2=(4CF)16
(2)⼗六进制数转换成⼆进制数
将⼀位⼗六进制数转换成⼆进制数,只要把每位⼗六进制数⽤对应的四位⼆制数来代替。
例2-11 将⼗六进数3B4C转换成⼆进制数。
解:⼗六进制数:3B4C
↓↓↓↓
⼆进制数: 0011 1011 0100 1100
∴(3B4C)16=(11101101001100)2
在将⼗六进制数转换成⼆进制数时,最后得到的⼆进制数最⾼位的“0”往往都可以去掉。
需要说明的是,表⽰⼀个数,如果是⼗进制数,则不必特别注明果是⼆、⼋、⼗六进制数,则要⽤下标或字母来说明。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论