您的位置:首页 > 编程语言 > Java开发

Java中十进制,二进制,十六进制的相互转换总结

2016-12-13 16:38 501 查看
首先,先来理解一些概念,计算机底层使用的数制是二进制,用java编程使用的是十进制,但java底层仍使用二进制。不管任何语言,二进制,十进制,十六进制等都是一样的,我们起码都要了解知道,面试中也会有加分的,就像计算机中的01代码,其实就是二进制。

一  十进制

 十进制的基本数字0~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

比如您的工资到手为25678 = 2 *
10^4 + 5 * 10^3 + 6* 10^2 +7 * 10^1 + 8 * 10^0,以10作为基数.

二  二进制

二进制的基本数字是0、1,逢2进位。

二进制的基数为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

 比如1111(二进制)=1×2^3+1×2^2+1×2^1+1×2^0=8+4+2+1=15(十进制)

三  十六进制

1、基本数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F(大小写均可)

2、特点:逢十六进位

3、十六进制是二进制的简写, 方便专业人员书写二进制数据。 

4、16进制的基数为16,权为16^n(16的n次方)

5、在Java代码中十六进制数用0X或0x做前缀(0是数字零,而不是字母O)

四 十六进制和其他进制的转换

 1.十六进制转换为10进制

   比如41十六进制转换为10进制如下:

   4*16^1 + 1*16^0 = 65(十进制)

 2.十六进制转换为二进制

   比如41是十六进制,转换为二进制为0100 0001

   PS:16进制的1位数代表2进制的4位数,所以说41变成二进制是8位,4的话对应二进制为0100,1对应的二进制为0001

五 二进制转换为其他进制

 1.二进制数转十进制

  10110为二进制,转换为十进制为  1*2^4+1*2^2+1*2^1 = 22

 2.二进制数转十六进制

 因为四位二进制数相当于一位十六进制数,所以1101 0110 对应的十六进制应该是2位,1101对应的十进制是1*2^3 +        1*2^2+1*2^0=13,则对应0-F十六进制中的D,同样的方法,则0110 = 1*2^2 + 1 * 2^1 = 6 这个为十进制,6对应十六进制为0到F中  的6,则1101 0110 对应的十六进制为D6.

六 十进制转换为其他进制

 1.十进制数转二进制

    规律:不断除以2,保留余数,商为0时不再除2.

    将所有余数倒序排列。

    比如 13转换为二进制过程如下:

      13/2       

商     6           余数    1

        6/2         

商      3          余数    0      

       3/2        

商      1          余数    1

       1/2      

商      0          余数    1

结果:13(十进制)=1101(二进制)

2.十进制数转十六进制

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

  比如:138转换为16进制数过程如下:

     138/16

商      8          余数    10   A

        8/16         

商      0          余数    8      

结果:138(十进制)=8A(十六进制)

PS:有些面试题是这样的,5 >> 2 是多少,这个意思是5向右移动2位等于多少,很明显考的是二进制,5的二进制为

0101 = 1 * 2^2 + 1 * 2^0 = 5(十进制),向右移动两位后右边01两位移除,前面补两位00,移动后变为0001,则 5 >> 2 = 1(十进制),可以看出向右移动是变小的,即除法,向左移动是变大的,乘法,可以这样总结下:

5 >> 2 等价于 5 / 2^2 = 1(取整数);而 5 << 2 等价于 5 *
2^2 = 20 等价于二进制 010100 = 1 * 2^4 + 1 * 2^2 = 20 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐