进制的概念与转换(二、八、十、十六进制)

进制的概念与转换(二、八、十、十六进制)目录 进制的概念 二进制 八进制 十进制 十六进制 注意 进制的转换 二进制与十进制之间的转换 二进制与八进制之间的转换 二进制与十六进制之间的转换 十进制与八进制 十六进制之间的转换 八进制与十六进制之间的转换 总结 进制的概念 在计算机语言中常用的进制有二进制 八进制

大家好,我是讯享网,很高兴认识大家。

目录

进制的概念

二进制

八进制

十进制

十六进制

注意

进制的转换

二进制与十进制之间的转换

二进制与八进制之间的转换

二进制与十六进制之间的转换

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

八进制与十六进制之间的转换

总结

进制的概念


在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是我们常用的表现形式。

对于进制有两个基本的概念:基数运算规则

基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。

运算规则:运算规则就是进位或借位规则。

二进制

用B(Binary)表示;基数为0和1;运算规则:进位规则“逢二进一”,借位规则“借一当二”

二进制表示各个数字:基数0、1可直接表示 0 ——> 0 0+1 ——> 1 0+1+1 ——> 2(逢二进一) ——> 10(二进制数) 或 10(B) 0+1+1+1 ——> 3 ——> 10+1 ——> 11 0+1+1+1+1 ——> 4 ——> 11+1(逢二进一) ——> 100 ...

讯享网

八进制

用O(Octal)表示;基数为0、1、2、3、4、5、6、7;运算规则:进位规则“逢八进一”,借位规则“借一当八”

讯享网八进制表示各个数字:基数0-7可直接表示 7 ——> 7 7+1 ——> 8(逢八进一) ——> 10(八进制数) 或 10(O) 7+1+1 ——> 9 ——> 10+1 ——> 11 7+1+1+1 ——> 10 ——> 11+1 ——> 12 7+1+1+1+1 ——> 11 ——> 12+1 ——> 13 ... 

十进制

用D(Decimal)表示;基数为0、1、2、3、4、5、6、7、8、9;运算规则:进位规则“逢十进一”,借位规则“借一当十”

十进制表示各个数字:基数0-9可直接表示,我们平常使用的数字就是十进制 9 ——> 9 9+1 ——> 10(逢十进一)(十进制数) 或 10(D) 9+1+1 ——> 10+1 ——> 11 9+1+1+1 ——> 11+1 ——> 12 9+1+1+1+1 ——> 12+1 ——> 13 ... 

十六进制

用H(Hex)表示;基数为:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15);运算规则:进位规则“逢十六进一”,借位规则“借一当十六”

讯享网十六进制表示各个数字:基数0-F(15)可直接表示 F(15) ——> F(15) F(15)+1 ——> 16(逢十六进一) ——> 10(十六进制数) 或 10(H) F(15)+1+1 ——> 17 ——> 10+1 ——> 11 F(15)+1+1+1 ——> 18 ——> 11+1 ——> 12 F(15)+1+1+1+1 ——> 19 ——> 12+1 ——> 13 ...

注意

上述各个进制之中有看似相同的数,比如:10(二进制),10(八进制),10(十进制),10(十六进制),但是它们代表的数各不相同。

通常有两种方式来区分到底是几进制的数: 第一种(已给出进制单位):根据单位区分 比如:10(B二进制),10(O八进制),10(D十进制),10(H十六进制) 第二种(未给出进制单位的通常情况):根据基数的范围区分  其中基数只有0和1,判断为二进制数 1367 其中基数范围在0-7,判断为八进制数 1921 其中基数范围在0-9,判断为十进制数 3F2A 其中基数范围在0-F,判断为十六进制数

进制的转换


二进制与十进制之间的转换

二进制转十进制 

方法:二进制数按位权展开相加,从右向左依次乘上2的n次幂再相加,n从零开始。

二进制数是由0、1组成的数,二进制与十进制的关系,如图:


讯享网

根据这张表,我们就可以通过这个规律轻松的把二进制换算出十进制。

例:转为十进制。(2^3=2*2*2=8,符号^表示次幂,2^3表示2的3次方)

讯享网=2^7*1 + 2^6*0 + 2^5*0 + 2^4*1 + 2^3*0 + 2^2*1 + 2^1*1 + 2^0*0 =2^7*1 + 2^4*1 + 2^2*1 + 2^1*1 =128 + 16 + 4 + 2 =150 的十进制数为:150 

十进制转二进制

方法一:除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止,把余数从最后一个读到第一个就是转换的二进制数。

例:45转为二进制。

52/2 = 26 余 0; 26/2 = 13 余 0; 13/2 = 6 余 1; 6 /2 = 3 余 0; 3 /2 = 1 余 1; 1- - - - - -1; 52在运算中得到的余数为 0,0,1,0,1,1 52转化成二进制数就是把上面得到的余数按倒叙排列 52的二进制数为: 

方法二:十进制数进行拆分成多个2的幂次方,再将各个2的幂次方相加。

首先应该知道2的幂次方的数的二进制就是1后面n个0,如下:                                

讯享网2^n 十进制 二进制 1 2 10 2 4 100 3 8 1000 4 16 10000 5 32  6 64  7 128  8 256  ...

例:145转为二进制。(根据上述信息快速得到对应的二进制数)

145=128+16+1 因为128=2^7,16=2^4, 1=2^0 所以二进制表示为:+10000+1= 145的二进制数为:

二进制与八进制之间的转换

二进制转八进制

方法:3位二进制数按位权展开相加得到1位八进制数,从右到左开始转换,不足时补0。

二进制和八进制数之间的关系,如下:

讯享网八进制数 二进制数 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111

例:转为八进制(根据上述信息快速得到对应的八进制数)

补充一位为:0 0 1 0 0 1 0 1 1 0 0*2^2+1*2^1+0*2^0=2 0*2^2+1*2^1+0*2^0=2 1*2^2+1*2^1+0*2^0=6 2 2 6 的八进制数为:226 

八进制转二进制(二进制转换成八进制的逆过程

方法一:除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

例:226转二进制。

讯享网 2 2 6 2/2=1(余数为0) 2/2=1(余数为0) 6/2=3(余数为0) 1/2=0(余数为1) 1/2=0(余数为1) 3/2=1(余数为1) 1/2=0(余数为1) 取余数为10,不足三位,则补零,为010 取余数为110 226的二进制数为: 

方法二:根据二进制和八进制数之间的关系直接得出二进制数。

例:226转二进制。

2 ——> 010 2 ——> 010 6 ——> 110 226的二进制数为:

二进制与十六进制之间的转换

二进制转换为十六进制

方法:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一,从右到左开始转换,不足时补0。

十六进制和二进制数之间的关系,如下:

讯享网十六进制 0 1 2 3 4 5 6 7 二进制 0000 0001 0010 0011 0100 0101 0110 0111 8 9 A B C D E F 1000 1001 1010 1011 1100 1101 1110 1111

例:转十六进制。

000 0001 = 0*2^3+0*2^2+0*2^1+1*2^0 = 1 0010 = 0*2^3+0*2^2+1*2^1+0*2^0 = 2 1100 = 1*2^3+1*2^2+0*2^1+0*2^0 = 12(C) 的十六进制数为:12C 

十六进制转换为二进制二进制转换成十六进制的逆过程

方法一:除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

例:42B转二进制。

讯享网 4 2 B(转为11) 4/2=2(余数为0) 2/2=1(余数为0) 11/2=5(余数为1) 2/2=1(余数为0) 1/2=0(余数为1) 5/2=2(余数为1) 1/2=0(余数为1) 2/2=1(余数为0) 1/2=0(余数为1) 取余数为100,不足四位,则补零,为0100 取余数为10,不足四位,则补零,为0010 取余数为1011 42B的二进制数为:

方法二:根据二进制和十六进制数之间的关系直接得出二进制数。

例:42B转二进制。

4 ——> 0100 2 ——> 0010 B ——> 1011 42B的二进制数为:

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

十进制转八进制或十六进制

方法一:间接法——把十进制转成二进制,然后再由二进制转成八进制或者十六进制。

方法二:直接法——把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。

例:150转八进制和十六进制。

讯享网150/8=18(余数为6) 150/16=9(余数为6) 18/8=2(余数为2) 9/16=0(余数为9) 2/8=0(余数为2) 150的八进制数为:226 150的八进制数为:96 

八进制或十六进制转十进制

方法:八进制、十六进制数按位权展开相加即得十进制数。

例:八进制数341和十六进制数46转十进制。

341 = 8^2*3 + 8^1*4 + 8^0*1 46 = 16^1*4 + 16^0*6 = 192 + 32 + 1 = 64 + 6 = 225 = 70 八进制数341的十进制数为:225 十六进制数46的十进制数为:70

八进制与十六进制之间的转换

方法一:先转成二进制然后再相互转换。

例:八进制416转十六进制,十六进制42转八进制

讯享网4 ——> 100 1 ——> 001 6 ——> 110 八进制数416的二进制数为: 0001 ——> 1 0000 ——> 0 1110 ——> E 二进制数的十六进制数为:10E 所以,八进制数416的十六进制数为:10E 4 ——> 0100 2 ——> 0010 十六进制数46的二进制数为: 001 ——> 1 000 ——> 0 010 ——> 2 二进制数的八进制数为:102 所以,十六进制数的八进制数为:102

方法二:先转成十进制然后再相互转换。

例:八进制416转十六进制,十六进制42转八进制

416 = 8^2*4 + 8^1*1 + 8^0*6 = 256 + 8 + 6 = 270 八进制数416的十进制数为:270 270/16=16(余数为14) 16/16=1(余数为0) 1/16=0(余数为1) 十进制数270的十六进制数为:10E 所以,八进制数416的十六进制数为:10E 42 = 16^1*4 + 16^0*2 = 64 + 2 = 66 十六进制数46的十进制数为:66 66/8=8(余数为2) 8/8=1(余数为0) 1/8=0(余数为1) 十进制数66的八进制数为:102 所以,十六进制数的八进制数为:102

总结

1. 其他进制转十进制:采用按位权展开相加的方法,将二进制数、八进制数、十六进制数的各位数字分别乘以各自基数的(N-1)次方,其相加之和便是相应的十进制数。

2. 十进制转其他进制:采用除基取余法,将十进制数分别除以二进制、八进制、十六进制各自的最大基数,依此步骤继续向下运算直到商为0为止,把余数倒着读出就是相对应的进制数。

3. 二进制转八进制、十六进制:二进制转八(十六)进制,每三(四)位二进制为一组用一位八(十六)进制的数字来表示,不足三(四)位的用0补足。

4. 八进制、十六进制转二进制:与二进制转八进制、十六进制相反。

5. 八进制与十六进制之间的转换:先转成二进制或者十进制,然后再相互转换。


        以上就是小编对于进制的理解及各个进制转换方法的分享,希望对正在学习这部分知识的你能够有所帮助,介绍部分如有错误或者您有更好的见解请联系小编~

小讯
上一篇 2025-02-22 14:38
下一篇 2025-02-20 14:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/43443.html