计算机进制转换.docx
- 文档编号:29015467
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:14
- 大小:39.21KB
计算机进制转换.docx
《计算机进制转换.docx》由会员分享,可在线阅读,更多相关《计算机进制转换.docx(14页珍藏版)》请在冰豆网上搜索。
计算机进制转换
计算机进制间的转换
计算机中常用的数的进制主要有:
二进制、八进制、十六进制,学习计算机要对其有所了解。
2进制,用两个阿拉伯数字:
0、1;
8进制,用八个阿拉伯数字:
0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:
0到9;
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。
字母不区分大小写。
以下简介各种进制之间的转换方法:
一、R进制转十进制:
基数为R的数字,只要将各位数字与它的权相乘,其积相加,所得的和就是十进制。
例如:
二进制转换十进制
例:
二进制“1101101.0101”
1101101.0101←二进制数
6543210.-1-2-3-4←排位方法
二进制换算十进制的算法:
说明:
2代表进制,后面的数是次方(从右往左数,以0开始)
=1×
+1×
+0×
+1×
+1×
+0×
+1×
+0×
+1×
+0×
+1×
=64+32+0+8+4+0+1+0.5+0.25+0.125+0.0625
=109.3125
八进制转十进制:
(123.45)8
=1×
+2×
+3×
+4×
+5×
=64+16+3+0.5+0.078125
=(83.578125)10
十六进制转十进制:
(2A3B4F)=2×
+10×
+3×
+11×
+4×
+15×
=(2767695)10
二、二进制换算八进制
例:
二进制的“10110111011”
换八进制时,从右到左,三位一组,不够补0,即成了:
010110111011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:
010=2
110=4+2=6
111=4+2+1=7
011=2+1=3
结果为:
2673
三、二进制转换十六进制
十六进制换二进制的方法也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
010110111011
运算为:
0101=4+1=5
1011=8+2+1=11(由于10为A,所以11即B)
1011=8+2+1=11(由于10为A,所以11即B)
结果为:
5BB
四、二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:
01100100,转换为10进制为:
计算:
0*20+0*21+1*22+1*23+0*24+1*25+1*26+0*27=100
五、八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:
1507,转换为十进制为:
计算:
7*80+0*81+5*82+1*83=839
结果是,八进制数1507转换成十进制数为839
六、十六进制转换十进制
例:
2AF5换算成10进制
直接计算就是:
5*160+F*161+A*162+2*163=10997
(别忘了,在上面的计算中,A表示10,而F表示15)、
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数1234为什么是一千二百三十四?
你尽可以给他这么一个算式:
1234=1*103+2*102+3*101+4*100
十进制D,二进制B,八进制O,十六进制H
125.625分成125和0.625
先看整数部分125,用长除法,125除2得62(余1),62除2得31(余0),31除2得15(余1),15除2得7(余1),7除2得3(余1),3除2得1(余1),1除2得0(余1)。
除到0结束,把余数倒着写出来1111101,所以125D=1111101B
再看小数部分0.625,用长乘法,0.625乘2得1.250(进1),0.250乘2得0.5(进0),0.5乘2得1.0(进1)。
乘到1结束(如果一直乘也得不到1,就是无限循环),把进位数顺序写出来101,所以0.625D=0.101B
加起来125.625D=1111101.101B
八进制同理,长除法的除数是8,余数0-7,长乘法的乘数是8,进位数是0-7
十六进制亦然,长除法除数16,余数0123456789ABCDEF(也就是0-15,但9以后用A-F表示),长乘法乘数是16,进位数0-F。
答案
十进制125.625转换2进制、8进制
125.625(D)=1111101.101(B)=175.5(O)
十进制69.625转换2进制16进制8进制
69.625(D)=1000101.101(B)=45(H)=105.5(O)
十进制127转换同上
127(D)=1111111(B)=7F(H)=177(O)
十六进制10A转换10进制
10A(H)=266(D)
八进制670转换10进制
670(O)=440(D)
二进制11111111000011转换10进制
11111111000011(B)=16323(D)
1、小数的二进制表示问题
首先我们要搞清楚下面两个问题:
(1) 十进制整数如何转化为二进制数
算法很简单。
举个例子,11表示成二进制数:
11/2=5 余 1
5/2=2 余 1
2/2=1 余 0
1/2=0 余 1
0结束 11二进制表示为(从下往上):
1011
这里提一点:
只要遇到除以后的结果为0了就结束了,大家想一想,所有的整数除以2是不是一定能够最终得到0。
换句话说,所有的整数转变为二进制数的算法会不会无限循环下去呢?
绝对不会,整数永远可以用二进制精确表示,但小数就不一定了。
(2)十进制小数如何转化为二进制数
算法是乘以2直到没有了小数为止。
举个例子,0.9表示成二进制数
0.9*2=1.8 取整数部分 1
0.8(1.8的小数部分)*2=1.6 取整数部分 1
0.6*2=1.2 取整数部分 1
0.2*2=0.4 取整数部分 0
0.4*2=0.8 取整数部分 0
0.8*2=1.6 取整数部分 1
0.6*2=1.2 取整数部分 0
......... 0.9二进制表示为(从上往下):
1100100100100......
注意:
上面的计算过程循环了,也就是说*2永远不可能消灭小数部分,这样算法将无限下去。
很显然,小数的二进制表示有时是不可能精确的。
其实道理很简单,十进制系统中能不能准确表示出1/3呢?
同样二进制系统也无法准确表示1/10。
这也就解释了为什么浮点型减法出现了"减不尽"的精度丢失问题。
计算机二进制转换基础教程
发表于2010-03-24由项学成
一、二进制介绍
1、进制是指逢几进1,10进制就是逢10进1,2进制就是逢2进1。
2进制数使用(0,1)2个基本符号
8进制数使用(0,1,2,3,4,5,6,7)8个基本符号
10进制数使用(0,1,2,3,4,5,6,7,8,9)10个基本符号
16进制数使用(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)16个基本符号
2、生活中常见的进制有10进制,7进制、24进制等,而计算机能直接识别和处理的只有2进制,无论是数字、文字、声音、图片等都必须转换成2进制后,计算机才能进行计算、处理、存储和传输。
3、为了方便表达,我们可以将2进制数用B代表,8进制数用O代表,10进制数用D代表,16进制数用H代表。
4、由于2进制数太长,不便于书写、阅读和记忆,所以使用8进制或16进制来等价的表示2进制。
二、2进制与8进制、16进制的对应关系
1、2进制与8进制的对应关系:
0=0001=0012=0103=0114=1005=1016=1107=111
2、2进制与16进制的对应关系:
0=00001=00012=00103=00114=01005=01016=01107=0111
8=10009=1001A=1010B=1011C=1100D=1101E=1110F=1111
三、进制间相互转换
1、10进制转换成2进制
10进制数转换成其它进制的方法是“除基取余”,如2进制的基数是2,8进制的基数就是8。
小数部分的算法是乘2取整法,拿小数部分不断乘以2,直到小数为0(有时小数永远不可能为0)或得到所要的精度为止。
例1:
将10进制数55.875转换成2进制数
整数部分:
55/2=27余1低位
27/2=13余1
13/2=6余1
6/2=3余0
3/2=1余1
1/2=0余1高位
答案:
(110111)B
小数部分:
0.875*2=1.75取1
0.75*2=1.5取1
0.5*2=1取1
答案:
(0.111)B
最终答案:
(110111.111)B
例2:
将10进制数0.632转换成2进制数
0.632*2=1.264取1
0.264*2=0.582取0
0.582*2=1.056取1
0.056*2=0.112取0
此例是无穷小数,答案为≈(1010)B
2、2进制转换成10进制
2进制数转换成10进制的方法是:
“按权展开”
例:
将2进数110111.111转换成10进制
整数部分:
1*25+1*24+0*23+1*22+1*21+1*20
32+16+0+4+2+1=55
小数部分:
1*2-1+1*2-2+1*2-3
0.5+0.25+0.125=0.875
答案:
(55.875)D
3、10进制转换成8进制
例:
将10进制数685.635转换成8进制数
整数部分:
685/8=85余5
85/8=10余5
10/8=1余2
1/8=0余1
小数部分:
0.635*8=5.08取5
0.08*8=0.64取0
0.64*8=5.12取5
0.12*8=0.96取0
答案:
≈(1255.5050)O
4、8进制转换成10进制
例:
将8进制数1255.5050转换成10进制
整数部分:
1*83+2*82+5*81+5*80
512+128+40+5=685
小数部分:
5*8-1+0*8-2+5*8-3+0*2-4
0.625+0.009765625≈0.635(四舍五入)
答案(685.635)D
5、10进制转换成16进制
例:
将10进制数5214.9856转换成16进制
整数部分:
5214/16=325余E
325/16=20余5
20/16=1余4
1/16=0余1
小数部分:
0.9856*16=15.7696取F
0.7696*16=12.3136取C
0.3136*16=5.0176取5
0.0176*16=0.2816取0
答案:
(145E.FC50)H
6、16进制转换成10进制
例:
将16进制数145E.FC50转换成10进制
整数部分:
1*163+4*162+5*161+E*160
4096+1024+80+14=5214
小数部分:
F*16-1+C*16-2+5*16-3+0*16-4
0.9375+0.046875+0.001220703≈0.9856(四舍五入)
答案:
(5214.9856)D
7、2进制转换成8进制
2进制转换成8进制的方法是,将整数部分以低位向高位方向,每3位数以等值的8进制数来替换,不足3位的前面补0,小数部分以高位向低位方向,每3位数以等值的8进制来替换,不足3位的后面补0。
例:
将2进制数11101110.110111转换成8进制数
整数部分:
从低位到高位,3位1转换
110=6
101=5
011=3
得出答案356
小数部分:
从高位到低位,3位1转换
110=6
111=7
得出答案是67
最终答案(356.67)O
8、8进制转换成2进制
8进制转换成2进制的方法是,将每一位8进制数字替换成等值的3位2进制数即可。
例:
将8进制数356.67转换成2进制数
整数部分:
3=011
5=101
6=110
得出答案:
11101110
小数部分:
6=110
7=111
得出答案:
110111
最终答案(11101110.110111)B
9、2进制转换成16进制
2进制转换成16进制的方法是,将整数部分以低位向高位方向,每4位数以等值的16进制数来替换,不足4位的前面补0,小数部分以高位向低位方向,每4位数以等值的16进制来替换,不足4位的后面补0。
例:
将2进制数1010101110.110111转换成16进制
整数部分:
从低位到高位,4位1转换
1110=E
1010=A
0010=2
得出答案:
2AE
小数部分:
从高位到低位,4位1转换
1101=D
1100=C
得出答案:
DC
最终答案(2AE.DC)H
10、16进制转换成2进制
16进制转换成2进制的方法是,将每一位16进制数字替换成等值的4位2进制数即可。
例:
将16进制数2AE.DC转换成2进制数
整数部分:
2=0010
A=1010
E=1110
答案:
1010101110
小数部分:
D=1101
C=1100
答案:
11011100
最终答案(1010101110.110111)B
后面的2个0就省略了
11、8进制和16进制相互转换
可以先将其转换成2进制,然后再相互转换。
附:
关于负次方的算法
2的2次方=4,2的负2次方就是1/4=0.25。
-10.5
-20.25
-30.125
-40.0625
-50.03125
-60.015625
-70.0078125
-80.00390625
-90.001953125
-100.000976563
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 转换