怎么转换二进制,八进制,十进制和十六进制啊?

作者&投稿:锐复 (若有异议请与网页底部的电邮联系)
二进制,十进制,八进制,十六进制怎么转换~

ccandbobo
2011-08-05 09:22
一。进制概念

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

65/2=32----1
32/2=16----0
16/2=8----0
8/2=4----0
4/2=2----0
2/2=1----0
1/2=0----1
逆序拼接余数的二进制数为1 000 001
八进制数为101
十六进制数为41

扩展资料:计算方法
主条目:进制转换
十进制转十六进制
采余数定理分解,例如将487710转成十六进制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
这样就计到487710=130D16
编程中的函式:
十六进制转换为十进制:十进制(Long型)=CLng("&H" & 十六进制数(String型))
十进制转换为十六进制:十六进制数(String型)=Hex$(十进制)

分三种情况:
一,非十进制和十进制互转。
二,二进制转八进制(十六进制),八进制(十六进制)转二进制。
三,八进制和十六进制互转。

分三种情况是因为算法上不尽相同,有的是很简单的算术,有的则是比较繁琐的。

第一种情况的解决办法:
十进制转非十进制:先对进制数整除取余,在将获得的余数逆序排列。所得的数就是所要的。举例:165(十进制)转八进制:
165/8=20 余 5
20/8=2余4
2/8=0余2
所得的八进制数就是245.
非十进制转十进制:计算位权与数的积的总和。关于位权,很好理解,就是所在位上的数的价值。对于二进制数10110来说,位权分别为2^4,2^3,2^2,2^1,2^0(符号^代表幂,这你应该知道)。八进制数674的位权分别是8^2,8^1,8^0,对于这个八进制数转成十进制,结果就是6*8^2+7*8^1+4*8^0=444.

第二种情况的解决办法:二进制和八进制及十六进制关系很近,所以单列出一个快速的方法。

对于二进制转八进制:将二进制数从个位开始每三位分一段,将每一段计算成十进制,将这些十进制按原序排列所得的就是八进制数。比如1101110110,分段后为 1 101 110 110,最前一段可能不足三位,补零就行了。所得数为1 5 6 6,结果就是1566.
对于二进制转十六进制:和二进制转八进制类似,不过分段式四位而不是三位,另 计算结果应该有超过10的结果,在十六进制里用abcdef分别代表 10 11 12 13 14 15.比如11111011001,分段为 111 1101 1001,结果是7 13 9,十六进制数就是7d9.
对于八进制(十六进制)转二进制就是将上述方法逆回去。对于单个位的数转二进制你应该没问题吧,比如 4=100,9=1001.八进制(十六进制)转二进制就是将数位拆开,单个转二进制,所得的就是所要的了。例如16进制数8f7=8 15 7=1000 1111 0111,结果就是100011110111。八进制转二进制是三位的。

第三种情况的解决办法:这个最繁琐了,你先将八进制(十六进制)转成十进制,然后在转成十六进制(八进制)。没有好的方法。

好了 ,就这些,希望你懂了。

十进制转换成二进制:
Dim d1 as Integer, x1 as Integer, l1 as Integer
Dim i as integer
Dim s1 as String, s2 as String
s1 = ""
d1=1234
Do
x1 = d1 Mod 2
s1 = s1 + ChrB$(x1 + 48)
d1 = d1 \ 2
If d1 = 0 Then Exit Do
Loop
l1 = Len(s1)
For i = 1 To l1
s2 = s2 + Mid$(s1, l1 - i + 1, 1)
Next i
十进制转换八进制与此类似,将其中的2改成8即可。
十进制转换成十六进制:
s1 = ""
d1 =1234
Do
x1 = d1 Mod 16
If x1 < 10 Then
s1 = s1 + ChrB$(x1 + 48)
Else
s1 = s1 + ChrB$(x1 + 55)
End If
d1 = d1 \ 16
If d1 = 0 Then Exit Do
Loop
l1 = Len(s1)
For i = 1 To l1
s2 = s2 + Mid$(s1, l1 - i + 1, 1)
Next i
二进制转换成十进制:
Dim h1 as String, s1 as String
Dim l1 as Integer, i as Integer, t as Integer, d1 as Integer
h1=“11010111”
L1 = Len(h1)
For i = 1 To L1
s1 = Mid$(h1, i, 1)
t = Asc(s1) - 48
d1 = d1 + t * 2 ^ (L1 - i)
Next i
八进制与此类似。
十六进制转换成十进制:
p1=“ABE3”
L1 = Len(p1)
For i = 1 To L1
s1 = Mid$(p1, i, 1)
If s1 >= "0" And s1 <= "9" Then
t = Asc(s1) - 48
ElseIf s1 >= "A" And s1 <= "F" Then
t = Asc(s1) - 55
ElseIf s1 >= "a" And s1 <= "f" Then
t = Asc(s1) - 87
End If
d1 = d1 + t * 16 ^ (L1 - i)
Next i

八进制转换为十进制,以下为例子,其他自己思考可以
main()
{ char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}

补充:汗!这个例子是进制转换,其他的可以自己推到。。。是在没时间写太多,不懂的话,晚上我回去了在百度上留言好了。


二进制怎么转换成8进制
二进制转换为八进制方法:1、取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)...

二进制和八进制怎样相互转换??
二进制和八进制相互转换的方法如下:1、先了解二进制数与八进制数之间的对应关系。2、进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。3、分好组以后,对照二进制与八进制数的对应表,将三位二进制按权相加,得到的数就是一位八进制数,然后...

二进制与八进制之间如何进行转换
按上面的8、4、2、1,对每位加和,最右边的111就是4+2+1=7,最前面的10就是2+0=2,连起来8进制的277 同样,8进制转2进制,比如8进制的277,同样按上面的分解,7就是4+2+1,也就是111,2就是2+0(10),所以8进制277转2进制就是10111111,同样按上面的规则,四位一组,就可以在2进制...

二进制怎么转换成八进制
方法二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。分好组以后,对照二进制与八进制数的对应表,将三位二进制按权相加,得到的数就是一位八进制数,然后按顺序排列,小数点的位置不变哦,最后得到的就是八进制数。扩展知识:在计算机中,...

八进制数怎么变为二进制数?
八进制转换成二进制方法:八进制转换二进制数的方法是将八进制数的每一位数化为三位数的二进制数,连在一起就可以了。比如八进制567,5转换成101,6转为110,7转为111,连在一起即101110111。转换原理,因为8=2^3,所以一位八进制数正好等于三位二进制数。同理一位十六进制数等于四位二进制数。...

二进制数转换成八进制数怎么转换?
二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。下面以二进制数10001111为例,转换为八进制数:10001111每三位合一组是,010、001、111,分别转换为八进制为2、1、7。所以10001111的...

二进制转换八进制怎么转换啊?
两者相等,所以经过上述分组转化,得到二进制的(10011101010001110101000111111)转化为八进制的(2352165077)。二进制、八进制、十进制和十六进制 二进制是Binary,简写为B,二进制只有0和1两个值,计算方法是逢二进一。比如01B+01B,结果就是10B,因为逢二进一,低位的1相加后得2就向高位进1。八进制是...

二进制八进制十六进制转换方法
八进制数转换成二进制数。将一个八进制数转换成二进制数,只要把每位八进制数用对应的三位二制数来代替。在将八进制数转换成二进制数时,最后得到的二进制数最高位的“0”往往都可以去掉。2.二进制与十六进制之间的转换 由于16=2×2×2×2,即16=24。因此,一位十六进制数相当于4位二进制数...

二进制怎么转化八进制?
(1) 二进制转换为八进制 方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最...

二进制,八进制,十进制,十六进制之间是怎么转换的
二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。(具体用法如下图)2 二进制转十进制 方法为:把二进制数按权展开、相加即得十进制数。(具体用法如下图)END 二进制与八...

余干县17181068948: 请问二进制、十六进制、八进制以及十进制之间如何进行转换?最好举几个例子, -
锺富黄豆:[答案] 二进制,八进制,十进制,十六进制之间的转换算法 一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为...

余干县17181068948: 怎么转换二进制,八进制,十进制和十六进制啊? -
锺富黄豆: 分三种情况:一,非十进制和十进制互转.二,二进制转八进制(十六进制),八进制(十六进制)转二进制.三,八进制和十六进制互转.分三种情况是因为算法上不尽相同,有的是很简单的算术,有的则是比较繁琐的.第一种情况的解决办...

余干县17181068948: 怎么进行2进制和10进制的转换? -
锺富黄豆: 很简单.教你一个易学易懂的方法.比如十进制192.见下表. 十进制:128 64 32 16 8 4 2 1 二进制: 1 1 0 0 0 0 0 0 把二进制是1的所对应的十进制相加.128+64=192.所以192的二进制就是11000000. 反过来二进制10101000.见下表 十进制:128 64 ...

余干县17181068948: 2进制、8进制、10进制、16进制、之间的转换怎么算啊 -
锺富黄豆:[答案] 十进制整数转换R进制(R可以是任何整数,比如3、5、7)整数,方法就是除R取余,十进制转八或十六进制方法类似转二进制,除以基数取余就行了,比如转八进制就除8,转十六进制就除16. 二进制和八进制、十六进制之间转换采用的是分组转换...

余干县17181068948: 二进制,八进制,十进制以及十六进制之间怎么互相转换?
锺富黄豆: 十进制转换N(2、8、16)进制:用十进制数除以N取余,结果从下往上倒着写.例:45转换二进制为:101101 N进制数转换十进制数方法:N进制数的每一位上的数字乘以N的M次方,然后把结果相加.(M为N进制数的位数,从零开始数) 例:二进制数101101,转换为十进制数为:1*2^5+1*2^3+1*2^2+1*2^0=45 将八进制数123转十进制数为:1*8^2+2*8+3*8^0=83 二、八、十六进制之间的互转可先转为十进制再转换

余干县17181068948: 十进制.二进制.八进制.十六进制的互换 -
锺富黄豆: 进制的转换(1)将二.八.十六进制数转换为十进制数一般对r进制数按位权展开,再作运算.如:将10111.11B转换成十进制数 将327O转换为十进制 将32FH转换为十进制解:(10111.11)2=1*24+0*23+1*22+1*21+1*20+1*2-1+1*2-2=...

余干县17181068948: 二进制和十进制.八进制.十六进制到底怎么换算
锺富黄豆: 十进制整数转换成二进制:除二逆向取余; 十进制小数转换成二进制:除二正向取余; 八进制整数转换成二进制:每位展开成三位;

余干县17181068948: 请问2进制数如何转换为8进制数,10进制数,16进制数 -
锺富黄豆:[答案] 一、2进制转换成8进制,从左到右3个数为一位,不够补0.如下表 二进制 八进制 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 如二进制:1101 三个数为一位,不够补0,为 001 101B 转换成8进制 对上八进制表就是15(8...

余干县17181068948: 计算机中的二进制、八进制、十进制、十六进制是怎样转换的呢? -
锺富黄豆: 十进制转各进制要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数. 一、十进制转二进制 如:55转为二进制 2|...

余干县17181068948: 2进制,8进制,10进制,如何转换到10进制? -
锺富黄豆: N进制转换为10进制,m1*N^0+m2*N^1+m3*N^2+……+m*N^(n-1)其中,m1、m2、m3……m是每一位数上面的数值,n表示位数,例如:二进制,10101转换为十进制,1*2^0+0*2^1+1*2^2+0*2^3+1*2^4

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网