美文网首页程序员
Java进制概述及进制间的相互转换

Java进制概述及进制间的相互转换

作者: 深情不及酒伴 | 来源:发表于2017-11-28 22:05 被阅读0次
    什么是进制?

    进制也是进位制,是人们规定的一种进位方法。对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推。

    十进制

    十进制的基本数字是0、1、2、3、4、5、6、7、8、9
    10称做"基数",10^n(10的n次幂)被称作"权"。

    10000 = 1 * 10^4
    1000 = 1*10^3
    100 = 1*10^2
    10 = 1*10^1
    1 = 1*10^0
    

    示例:

    12345(十进制) = 1*10000+2*1000+3*100+4*10+5*1
                  = 1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
                  = 12345
    
    二进制

    二进制的基本数字是0、1
    二进制的基数为2,权为2^n(2的n次幂)

    1=1*2^0
    10=1*2^1
    100=1*2^2
    1000=1*2^3
    10000=1*2^4
    100000=1*2^5    
    1000000=1*2^6
    10000000=1*2^7      
    1的后面有n个0,就=1*2^n  
    

    栗子:二进制的1111等价十进制的多少?

    二进制:1111 = 1*2^3+1*2^2+1*2^1+1*2^0 
                  = 8+4+2+1 =15 
    
    十六进制

    基本数字:

    0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;
    A表示10,B表示11,C表示12,D表示13,E表示14,F表示15;
    A、B、C、D、E、F可以用小写字母abcdef表示
    

    特点:逢16进位
    十六进制是二进制的简写,一个十六进制数相当于4个二进制数
    十六进制的基数为16,权为16^n(16的n次方)
    在java代码中十六进制数用0X或0x做前缀(0是数字的零)

    0x1000=1*16^3
    0x100=1*16^2
    0x10=1*16^1
    0x1=1*16^0
    
    栗子:16进制的(5E)转换成10进制
    5E=5*16^1+14*16^0 = 80+14 =94 (E=14)
    
    十六进制与其他进制的转换
    16进制(41) = 4*16^1+1*16^0 = 64+1=65 (转换为10进制)
               = 0100 0001 (转换为2进制) 说明:16进制的1位数代表2进制的4位数
    
    二进制转换为其他进制
    二进制转换为十进制:
    10110 = 1*2^4+0*2^3+1*2^2+1*2^1+0*2^0 =16+0+4+2+0=22 
    转换为十六进制:
    原则:4个二进制为表示一个十六进制位
    10110 = 0001 0110
    拆开转换: 0001=1(10进制)  0110=6(10进制) = 0x16 16进制 
    
    将二进制转换成16进制的思路,现将二进制拆开,每4位2进制位表示1个16进制位
    11010110 = 1101 0110 (拆开) = 1101-> 13=D,  0110->6; 
             = D6
    
    十进制数转为二进制数

    规律:不断除以2,保留余数,商为0时不再除2.将所有的余数倒序排列

    栗子:将13转换为二进制
        13/2
    商     6     余数  1
        6/2
    商     3     余数  0
        3/2
    商     1     余数  1
        1/2
    商     0     余数  1
    结果:1101
    
    十进制数转为十六进制
    规律:不断除以16,保留余数,商为0时不再除以16,将所有的余数倒序排列
    示例:138转换为16进制
            138/16
    商     8     余数  10 = A
        8/16
    商     0     余数  8 = 8
    结果 = 0x8A
    

    相关文章

      网友评论

        本文标题:Java进制概述及进制间的相互转换

        本文链接:https://www.haomeiwen.com/subject/epnebxtx.html