计算机基础:进制转换(二进制、八进制、十进制、十六进制)

        对于整数的形式主要有四种,我们日常生活中使用的是十进制,但是对于计算机来说,存储的形式只有0和1,即二进制,所以要想将现实生活和计算机联系起来就必须使用到进制转换,所以要想深入了解计算机,学习进制转换是十分重要的。

一、进制介绍

  1. 二进制:每个数位只有0和1两种表示,满2进一,Java中在开头加上0B或0b表示(这里的b指的是单词binary);
  2. 八进制:每个数位上的取值范围为0~7,满8进一,Java中在开头加上0表示;

  3. 十进制:生活中最常用的进制,每个数位上的取值范围为0~9,满10进一;

  4. 十六进制:每个数位上的取值范围为0~9以及A(10)~F(16),满16进一,Java中在开头加上0X或0x来表示。(这里的X指的是hexadecimal,A~F不区分大小写)

二、进制转换

1.其他进制转十进制

        由其他进制转换成十进制的规则比较类似,计算的过程相同,不同的地方在于每个数位上的数范围不同,并且乘法结构的底数不同,这里我自己的理解是不同进制数所占的权重不同,底数就是权重,在不同进制转换的时候,乘上相应的权重的多少次方,而这里的次方数就是从右到左的位数,从右到左进位,所以递增。

①二进制转十进制:

        规则:每个数位上的数可以理解成系数,次方数表示由右到左从0开始逐渐加一,用系数乘2的相应次方再求和,就得到最终的十进制结果了。

例如二进制数:0b1011

二进制数1011
次方数3210

那么这里就可以根据以上的规则进行运算:

                 1\ast 2^{3}+0\ast 2^{^{2}}\ +1\ast 2^{1}+1*2^{0}=8+0+2+1=11

则二进制数0b1011所对应的十进制数就是11。

ps.这里的次方数由右到左逐渐递增是因为在计算机中进行数据表示时,右边为低位,左边为高位。

②八进制转十进制:

        规则:每个数位上的数可以理解成系数,次方数表示由右到左从0开始逐渐加一,用权重乘8的相应次方再求和,就得到最终的十进制结果了。

例如八进制数:02025(注意这里最开头的0只是八进制数的标识,并不参与转换)

八进制数2025
次方数3210

根据以上规则进行计算:

               2*8^{_{3}}+0*8^{_{^{2}}}+2*8^{1}+5*8^{^{0}}=1024+0+16+5=1045

则八进制数02025对应的十进制数就是1045。

③十六进制转十进制:

        规则:每个数位上的数可以理解成系数,次方数表示由右到左从0开始逐渐加一,用系数乘16的相应次方再求和,就得到最终的十进制结果了。

例如十六进制数:0x2A3F

十六进制数2A3F
次方数3210

根据以上的规则进行计算:

        2*16^{_{^{3}}}+10*16^{2}+3*16^{1}+15*16^{0}=8192+2560+48+15=10815

则十六进制数0x2A3F对应的十进制数就为10815。

ps.因为十六进制数需要十六位,而十进制数表示不全,所以从10到15由A~F来进行表示。

2.十进制转其他进制

        十进制转其他进制的整体思路都是一样的,都是使用的短除法,用十进制数除以相应的进制,直到除尽为止,将余数倒序表示,得到的结果就是十进制数对应的其他进制数。

①十进制转二进制:

        规则:将十进制数不断除以2,直到除尽,再将得到的余数反转过来,得到的结果就为对应的二进制数。

例如十进制数:19

        由以上计算过程可以得出十进制数19对应的二进制数就是0b00010011,这里在高位补0,是为了凑齐8个数位,即2个字节,更符合计算机的存储方式。要注意的是这里一定要将余数反过来写。

②十进制转八进制:

        规则:将十进制数不断除以8,直到除尽,再将得到的余数反转过来,得到的结果就为对应的八进制数。

例如十进制数419:

        由以上的计算过程可以得出十进制数419对应的八进制数位0643。

③十进制转十六进制:

         规则:将十进制数不断除以16,直到除尽,再将得到的余数反转过来,得到的结果就为对应的十六进制数。

例如十进制数541:

        根据以上计算结果可知十进制数541对应的十六进制数为0x21D。这里要注意,当余数超过10的时候要转换成相对应的字母表示。

3.二进制和(八进制、十六进制)的互相转换 

①二进制与八进制互相转换:

        二进制转八进制:将二进制数每三个数位划分为一组,在将每组二进制数转换成对应的十进制数,再将所有的数按照顺序拼接在一起就是对应的八进制数。

        八进制转二进制:与以上过程相反,将每个数位转换成对应的三位二进制数,然后再按照顺序将所有数拼接在一起就是对应的二进制数。

以下举例:

二进制数0b01001101转八进制:

二进制数001001101
八进制数115

        则二进制数0b01001101对应的八进制数为0115(首位的0是八进制的标识),这里在划分的时候如果数位不够就在高位补0即可。

八进制数0254转二进制 :

八进制数254
二进制数010101100

        则八进制数0254对应的二进制数就为0b10101100。

②二进制与十六进制互相转换;

        二进制转十六进制:将二进制数每4个数位划分为一组,再将每组二进制数转换成对应的十进制数,然后按照顺序将所有的数拼接在一起就是对应的十六进制数。

        十六进制转二进制:与上面是相反的过程,将每个数位上的数转换成对应的四位二进制数,然后按照顺序拼接起来就得到了对应的二进制数。

以下举例;

二进制数0b101101011001转十六进制:

二进制数101101011001
十六进制数B59

        则二进制数0b101101011001对应的十六进制数为0xB59。

十六进制数0x23A转二进制:

十六进制23A
二进制001000111010

        则十六进制数0x23A转换成对应的二进制数为0b001000111010。

三、使用计算机自带计算器进制转换

1.点击桌面左下角的搜索框

2.输入calc,点击打开

 

3.点击标准左侧的三个横线的导航,选中程序员

 

         HEX为十六进制,DEC为十进制,OCT为八进制,BIN为二进制,点击相应的按钮输入要求的数就可以进行转换了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值