码迷,mamicode.com
首页 > 其他好文 > 详细

2014年10月8日——进制转换

时间:2014-10-08 14:27:55      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:style   使用   ar   sp   2014   c   on   r   ef   

一、进制说明

1、十进制 
    十进制使用十个数字(0123456789)记数,基数为10,逢十进一。 
    历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。设计十进制机器比设计二进制机器复杂得多。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进制计算机。


2、二进制

 
    二进制以2为基数,只用01两个数字表示数,逢2进一。 


    二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如:

 
1)加法:0+0=0 0+1=1 1+0=1 1+1=0 


2)减法:0-0=0 1-1=0 1-0=1 0-1=1 


3)乘法:0*0=0 0*1=0 1*0=0 1*1=1 

(4)除法:0/1=0 1/1=1,除数不能为


3、八进制

 所谓八进制,就是其基数为8,基数值可以取012345678个值,逢八进一。 
   
4、 十六进制

 
十六进制应用也是非常广泛的一种计数制。在使用者看来,十六进制是二进制数的一种更加紧凑的一

种表示方法。

 
基数为:0123456789ABCDEF,逢十进一。在十六进制系统中,

数值为1015的数分别用ABCDEF表示。

 

二进制数及与之等值的八进制、十进制和十六进制数 


二进制                   八进制                         十进制               十六进制 
0000 0 0 0 
0001 1 1 1 
0010 2 2 2 
0011 3 3 3 
0100 4 4 4 
0101 5 5 5 
0110 6 6 6 
0111 7 7 7 
1000 10 8 8 
1001 11 9 9 
1010 12 10 A 
1011 13 11 B 
1100 14 12 C 
1101 15 13 D 
1110 16 14 E 
1111 17 15 F 

二、进制转换 
1、二进制与十进制数间的转换 
1)二进制转换为十进制 
将每个二进制数按权展开后求和即可。请看例题: 
把二进制数(101.1012=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=5.62510 

2)十进制转换为二进制 
一般需要将十进制数的整数部分与小数部分分开处理。

      整数部分计算方法:除2取余法 请看例题: 
十进制数(5310的二进制值为(110101
     小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(01)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题: 
将(0.512510转换成二进制:(0.512510=0.1012

0.5125:
*2  1.025     取整得1,剩0.025

*2  0.5         取整得0,剩0.5

*2  1            取整得1,剩0

(0.512510   = 0.1012

二、负整数转换为二进制

要点:取反加一

解释:将该负整数对应的正整数先转换成二进制,然后对其取补,再对取补后的结果加1即可

例如要把-52换算成二进制:


1.先取得52的二进制:00110100


2.对所得到的二进制数取反:11001011


3.将取反后的数值加一即可:11001100


即:(-52)10=(11001100)2

 

比如将二进制110转换为十进制:


首先补齐位数,00000110,首位为0,则为正整数,那么将二进制中的三位数分别于下边对应的值相乘后相加得到的值为换算为十进制的结果


如果二进制数补足位数之后首位为1,那么其对应的整数为负,那么需要先取反然后再换算


比如11111001,首位为1,那么需要先对其取反,即:-00000110
00000110,对应的十进制为6,因此11111001对应的十进制即为-6
换算公式可表示为:

11111001=-00000110
              =-6

 

三、小数转换为二进制

要点:乘二取整,正序排列

解释:对被转换的小数乘以2,取其整数部分(01)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列


例如把0.2转换为二进制

0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0011,结果又变成了0.2
若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即:
(0.2)10=(0.0011 0011 0011 .....)2

循环的书写方法为在循环序列的第一位和最后一位分别加一个点标注

 

2、八进制、十六进制与十六进制间的转换 

八进制、十六进制与十六进制之间的转换方法与二进制,同十进制之间的转换方法类似。例如: 

738=7*81+3=5910 

0.568=5*8-1+6*8-2=(0.71875)10 

(12A)16=1*162+2*161+A*160=(298)10 

(0.3C8)16=3*16-1+12*16-2+8*16-3=(0.142578125)10 

十进制整数→→→→→八进制 方法:8取余” 

十进制整数→→→→→十六进制 方法:16取余” 例如: 

17110=253

265310=A5D16 

十进制小数→→→→→八进制小数 方法:8取整” 

十进制小数→→→→→十六进制小数 方法:16取整” 例如: 

0.7187510=0.56

(0.142578125)10=(0.3C8)16


3、非十进制数之间的转换 

1)二进制数与八进制数之间的转换 

转换方法是:以小数点为界,分别向左右,每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如: 

423.458=100 010 011.100 101

1001001.11012=001 001 001.110 1002=111.64

2)二进制与十六进制转换 

转换方法:以小数点为界,分别向左右,每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如: 

ABCD.EF16=1010 1011 1100 1101.1110 1111

101101101001011.011012=0101 1011 0100 1011.0110 10002=5B4B.6816 

 

 

 

(17B3)16=(1011110110011)2

(A3C6)16=(1010001111000110)2

(B54C)16=(1011010101001100)2

 

 

 

 

 

2014年10月8日——进制转换

标签:style   使用   ar   sp   2014   c   on   r   ef   

原文地址:http://www.cnblogs.com/9999w/p/4010997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!