计算机进制转换.docx

上传人:b****5 文档编号:29015467 上传时间:2023-07-20 格式:DOCX 页数:14 大小:39.21KB
下载 相关 举报
计算机进制转换.docx_第1页
第1页 / 共14页
计算机进制转换.docx_第2页
第2页 / 共14页
计算机进制转换.docx_第3页
第3页 / 共14页
计算机进制转换.docx_第4页
第4页 / 共14页
计算机进制转换.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

计算机进制转换.docx

《计算机进制转换.docx》由会员分享,可在线阅读,更多相关《计算机进制转换.docx(14页珍藏版)》请在冰豆网上搜索。

计算机进制转换.docx

计算机进制转换

计算机进制间的转换

计算机中常用的数的进制主要有:

二进制、八进制、十六进制,学习计算机要对其有所了解。

 

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1