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

首先,先来理解一些概念,计算机底层使用的数制是二进制,用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)


扫描二维码关注公众号,回复: 8486309 查看本文章

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

 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 



发布了60 篇原创文章 · 获赞 109 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/shenshibaoma/article/details/53610256