孙婷是杨幂的:进制的互换

来源:百度文库 编辑:中科新闻网 时间:2024/05/15 05:24:16
可以教教我怎么把一个数字从2进制换为8进制,8进制换10进制,10进制换16进制,然后再从16进制换回10进制,以次类推,我急需掌握这个互换的方法,谢谢各位
谢谢zhujinliang,不过你没明白我的意思,我不是需要互换以后的数,我是想掌握怎么互换的方法,我考试要用到这个.

一、 常用数制及其相互转换
在我们的日常生活中计数采用了多种记数制,比如:十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),……。在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下。
1.十进制数
我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意组合构成,其特点是逢十进一。
任何一个十进制数均可拆分成由各位数字与其对应的权的乘积的总和。例如:
?
?
?
这里的10为基数,各位数对应的权是以10为基数的整数次幂。为了和其它的数制区别开来,我们在十进制数的外面加括号,且在其右下方加注10。

2.二进制数
在计算机中,由于其物理特性(只有两种状态:有电、无电)的原因,所以在计算机的物理设备中获取、存储、传递、加工信息时只能采用二进制数。二进制数是由两个数字0、1任意组合构成的,其特点是逢二进一。例如:1001,这里不读一千零一,而是读作:一零零一或幺零零幺。为了与其它的数制的数区别开来,我们在二进制数的外面加括号,且在其右下方加注2,或者在其后标B。
任何一个二进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、2、4、8、16、32、64、128、……,其小数部分的权由高向低依次是:0.5、0.25、0.125、0.0625、……。

二进制数也有其运算规则:
加法:0+0=0????0+1=1???1+0=1????1+1=10
乘法:0×0=0????0×1=0????1×0=0????1×1=1

二进制数与十进制数如何转换:
(1) 二进制数—→十进制数
对于较小的二进制数:
对于较大的二进制数:
方法1:各位上的数乘权求和??例如:
(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45
(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125

方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和??例如:
(101101)2=(100000)2+(1000)2+(100)2+(1)2
而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n。
所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45

(2)十进制数—→二进制数
整数部分:整除以2取余法。例如:75
75/2=37…1??37/2=18…1??18/2=9…0??9/2=4…1??4/2=2…0??2/2=1…0???1/2=0…1
将得到的一系列的余数倒过来书写就得到该数所对应的二进制数(1001011)2
小数部分:乘以2取整法。例如:0.7
0.7×2=1.4…1??0.4×2=0.8…0???0.8×2=1.6…1???0.6×2=1.2…1??0.2×2=0.4…0

3.八进制数
八进制数是由0、1、2、3、4、5、6、7、8任意组合构成的,其特点是逢八进一。为了与其它的数制的数区别开来,我们在八进制数的外面加括号,且在其右下方加注8,或者在其后标Q。
八进制数的基数是8,任何一个八进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、8、82、83、84、85、……,其小数部分的权由高向低依次是:8-1、8-2、8-3、8-4、……。

八进制数与其它数制的转换:
(1)与十进制数的互换
八进制数—→十进制数
十进制数—→八进制数
方法均与二进制数与十进制数互换的方法一样。

(2)与二进制数的互换
八进制数—→二进制数
把八进制数的每一位改成等值的三位二进制数,即“一位变三位”。
例如:56.103Q
解:?5?????6?.??1????0????3
???? ↓????↓???↓???↓???↓??????????????
???? 101??110???001??000??011
所以(56.103)8=(101110.001000011)2

二进制数—→八进制数
把二进制数从小数点开始向两边每三位为一段(不足补0),每段改成等值的一位八进制数即可,即“三位变一位”。

4.十六进制数
十六进制数是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F任意组合构成的,其特点是逢十六进一。为了与其它的数制的数区别开来,我们在十六进制数的外面加括号,且在其右下方加注16,或者在其后标H。
十六进制数的基数是16,任何一个十六进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、16、162、163、164、165、……,其小数部分的权由高向低依次是:16-1、16-2、16-3、16-4、……。

十六进制数与其它数制的转换:
(1)与十进制数的互换
十六进制数—→十进制数
十进制数—→十六进制数
方法均与二进制数与十进制数互换的方法一样。

(2)与二进制数的互换
十六进制数—→二进制数
把十六进制数的每一位改成等值的四位二进制数,即“一位变四位”。
例如:(3AD.B8)16
解:?3????A?????D.????B?????8
???? ↓????↓????↓????↓????↓??????????????
???? 0011??1010??1101??1011??1000
所以(3AD.B8)16=(1110101101.10111)2

二进制数—→十六进制数
把二进制数从小数点开始向两边每四位为一段(不足补0),每段改成等值的一位十六进制数即可,即“四位变一位”。

下表中列出了一些数的二、八、十和十六进制形式
二进制数 八进制数 十进制数 十六进制数 二进制数 八进制数 十进制数 十六进制数
0000 0 0 0 1001 11 9 9
0001 1 1 1 1010 12 10 A
0010 2 2 2 1011 13 11 B
0011 3 3 3 1100 14 12 C
0100 4 4 4 1101 15 13 D
0101 5 5 5 1110 16 14 E
0110 6 6 6 1111 17 15 F
0111 7 7 7 10000 20 16 10
1000 10 8 8 10001 21 17 11

??? 二、计算机中数的表示
在计算机中所有的数据、指令以及一些符号等都是用特定的二进制代码表示的。
??? 1.数值数据的表示
我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。机器数有固定的位数,具体是多少位受到所用计算机的限制。机器数把其真值的符号数字化,通常是用规定的符号位(一般是最高位)取0或1来分别表示其值的正或负。例如:假设机器数为8位,则其最高位是符号位,那么在整数的表示情况下,对于00101110和10010011,其真值分别为十进制数+46和-19。
机器数常采用原码和补码的形式作为其编码方式。
(1)原码
整数X的原码是指:其符号位的0或1表示X的正或负,其数值部分就是X的绝对值的二进制表示。通常用[X]原表示X的原码。
例如:假设机器数的位数是8,那么:[+17]原=00010001???[-39]原=10100111
注意:由于[+0]原=00000000,[-0]原=10000000,所以数0的原码不唯一,有“正零”和“负零”之分。
(2)反码
在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0)。通常,用[X]反表示X的反码。
例如:[+45]反=[+45]原=00101101??[-32]原=10100000???[-32]反=11011111
(3)补码
在补码的表示中,正数的表示方法与原码相同;负数的补码在在其反码的最低有效位上加1。通常用[X]补表示X的补码。
例如:[+14]补=10100100???[-36]反=11011011????[-36]补=11011100
注意1:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000
注意2:利用公式?[X]补+[±Y]补=[X±Y]补??可以把加法和减法统一成加法。(符号位和其它位上数一样运算,如果符号位上有进位,则把这个进位的1舍去不要,即不考虑“溢出”问题)。
例如:??X=6,Y=2??求X-Y
解:??[X]补=00000110??????[-Y]补=11111110
?????? [X-Y]补=00000100

另:机器数中采用定点或浮点数的方式来表示小数!(略)

??? 2.ASCII码
计算机除了能处理数值外还能处理字符(指字母A、B、…、Z、a、b、…、z,数字0、1、…、9,其它一些可打印显示的符号如:+、-、*、/、<、>、…)。在计算机内部,这些符号也得用二进制代码来表示,目前,在国际上广泛采用的是美国标准信息交换代码(American?Standard?Code?for?Information?Interechang),简称ASCII码。
标准的ASCII码中共有128(27)个字符,所以标准的ASCII码采用7位二进制编码。因为其中的字符排列是有序的,其对应的ASCII码也是相连的,所以我们只需要记几个关键字符的ASCII码,其它可以推算。
‘0’——48????‘A’——65??????‘a’——97

注:标准的ASCII码能表示的字符较少,于是在其基础上又设计了一种扩充的ASCII码,采用的是8位二进制编码,可以表示256个字符。

??? 3.BCD码
十进制数在键盘输入和打印、显示输出时往往是将各个数字以ASCII码来表示的。但是在计算机内运算时,是以二进制形式进行的。为了便于转换,设计了一些用二进制编码表示的十进制数,称为二—十进制码,即BCD码(Binary?coded?Decimal)。
BCD码是用四位二进制代码来表示一位十进制数。有多种BCD码:8421码、2421码、余3码、格雷码。
常用BCD码
十进制数字 8421码 2421码 余3码 格雷码
0 0000 0000 0011 0000
1 0001 0001 0100 0001
2 0010 0010 0101 0011
3 0011 0011 0110 0010
4 0100 0100 0110 0010
5 0101 0101 1000 1110
6 0110 0110 1001 1010
7 0111 0111 1010 1000
8 1000 1110 1011 1100
9 1001 1111 1100 0100
注意:BCD码表示的数形式上像二进制数,但不是真正的二进制数。

教你个好办法
打开计算器(运行calc.exe即可),可以看见进制选项(如果没有,请打开查看菜单,选择科学型),先选择你需要的进制,比如你要把十进制的数字10转换为2进制,你需选择十进制,然后输入待转换的数值(比如10),然后单击需转换成的进制类型(比如二进制),你会发现,编辑框内的数就成了2进制的了

一。进制概念

1。 十进制

十进制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。

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

2。 二进制

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

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

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

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

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

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

3。 八进制

所谓八进制,就是其基数为8,基数值可以取0、1、2、3、4、5、6、7共8个值,逢八进一。

八进制与十进制运算规则一样。那么为什么要用八进制呢?难道要设计八进制的计算机么?实际上,八进制与十六进制的引用,主要是为了书写和表示方便,因为二进制表示位数比较长。如:(1024)10 用二进制表示为 (10000000000)2,共有11个数字,用八进制表示为(2000)8。更重要的是,由于二进制与八进制存在在一种对等关系,每三位二进制与一位八进制数完全对等(23=8)。所以二进制和十进制在运算上无区别,而时进制不具备这一优点。

4。 十六进制

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

基数为:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,逢十进一。在十六进制系统中,数值为10到15的数分别用A、B、C、D、E、F表示。

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

二进制 八进制 十进制 十六进制
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.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10

(2)十进制转换为二进制

一般需要将十进制数的整数部分与小数部分分开处理。

整数部分计算方法:除2取余法请看例题:

十进制数(53)10的二进制值为(110101)2

小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(0或1)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题:

将(0.5125)10转换成二进制。(0.5125)10=(0.101)2

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

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

(73)8=7*81+3=(59)10

(0.56)8=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取余” 例如:

(171)10=(253)8

(2653)10=(A5D)16

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

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

(0。71875)10=(0.56)8

(0.142578125)10=(0.3C8)16

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

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

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

(423。45)8=(100 010 011.100 101)2

(1001001.1101)2=(001 001 001.110 100)2=(111.64)8

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

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

(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2

(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B。68)16

啊 ~~~~~~~~~~~~~~~~~~~终于打完了--------------------好累!

不知道大家明白了没有,应该画一些辅助理解的图形,但是本人还不会在这里画 (好苯!以后有时间会学的),只有用文字来表达了,希望大家能多看几遍,相信会理解的。