进制的相互转换

      对于编程语言来说,计算机本质上使用二进制来处理所有数据,内存地址通常用十六进制表示,Unix系统文件权限使用八进制表示,所以进制是学习计算机不可或缺的部分。我们分为四个部分来将进制之间的转换解决掉。

首先了解各个进制之间的区别和特点:

二进制:0,1,满二进一,以0(数字0)b(B)开头。

八进制:0-7,满八进一,以数字0开头。

十进制:0-9,满十进一。

十六进制:0-9,a-f(A-F),满十六进一,以0(数字0)x(X)开头。

1.二,八,十六转为十进制

二转为十进制:从最低位开始,将每一位上的数提取出来,乘以2的(位数减一)次方,然后求和

                         例如:0b1011=1*2^0+1*2^1+0*2^2+1*2^3=11

八进制转为十进制:从最低位开始,将每一位上的数提取出来,乘以8的(位数减一)次方,然后求和

                        例如0234=4*8^0+3*8^1+2*8^2=156

十六进制转为十进制:从最低位开始,将每一位上的数提取出来,乘以16(位数减一)次方,然后求和

                       例如:0x23a=10*16^0+3*16^1+2*16^2=570(a对应10,b对应11,直到f对应15)

2.十进制转为二,八,十六进制

十进制转为二进制:将该数不断地除以2,直到商为0为止,然后将每步得到的系数倒过来,就是对应的二进制。

      例如:34的二进制为多少?34除以2,得17,余数为0,再除以2,得8,余数为1,再除以2,得4,余数为0,再除以2,得2,余数为0,再除以2,得1,余数为0(可以说刚开始只看余数,最后要看最后的商和余数,倒过来写就是该得到的二进制数。画图的话更简单直观)答案为0b100010

十进制转为八进制:将该数不断地除以8,直到商为0为止,然后将每步得到的系数倒过来,就是对应的八进制。

      例如:131的八进制数为0203(同上,第一个0表示为八进制)

十进制转为十六进制:将该数不断地除以16,直到商为0为止,然后将每步得到的系数倒过来,就是对应的十六进制。

     例如:237的十六进制数为0xED(或0xed或0XED或0xed)(同上,0x为十六进制的表示)

3.二进制转八,十六进制

二进制转八进制:从最低位开始,将二进制数每三位一组,每一组转成对应的八进制数,不够的在前面添0,从后往前依次写出。

      例如:0b 11  010   101=0(八进制表示数)3(11的八进制数)2(010的八进制数)5(101的八进制数)=0325

二进制转十六进制:从最低位开始,将二进制数没四位一组,每一组转成对应的十六进制数即可。

     例如:0b1101   0101=0x(十六进制的表示方式)D(1101的十六进制数)5(0101的十六进制数)=0xD5

4.十六,八进制转为二进制

八进制转二进制:(与二进制转八进制刚好相反)将每一位,转成对应的二进制数即可

     例如:0  7=0b(二进制数的表示)010(2的二进制数)011(3的二进制数)111(7的二进制数)=0b010011111

十六进制转二进制:(与上面同理)将每一位,转成对应的二进制数即可

     例如:0x23b=0b(二进制数的表示)0010(二的二进制数)0011(3的二进制数)1011(b的二进制数)

最后通过这四种分类,来方便记忆进制之间的转换。

此外对于十六进制和八进制之间的转换不能直接转换,可以通过十进制和二进制作为桥梁进行转换。

感谢您的观看,有什么不对的地方也希望您能指出,向您学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值