java十进制二进制互转
Posted 会偷袭的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java十进制二进制互转相关的知识,希望对你有一定的参考价值。
1. 十进制转二进制
原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。
比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2(余数0),第三次除以2等于1(余数0),最后余数1,得到的余数依次是 0 0 0 1 ,
反过来就是1000,计算机内部表示数的字节长度是固定的,比如8位,16位,32位。所以在高位补齐,java中字节码是8位的,所以高位补齐就是00001000.
代码实现:
public class Test { public static void main(String[] args) { String str = toBinary(8); System.out.println(str); } static String toBinary(int num) { String str = ""; while (num != 0) { str = num % 2 + str; num = num / 2; } return str; } }
//运行结果:1000
2. 二进制转十进制
计算也很简单,比如8的二进制表示位00001000,去掉补齐的高位就是1000.此时从个位开始计算2的幂(个位是0,依次往后推)乘以对应位数上的数,然后得到的值想加
于是有了,(2的0次幂)0+(2的1次幂)0+(2的2次幂)0+(2的3次幂)1 = 8
代码实现,直接调用Integer.parseInt("",2);
System.out.println(Integer.parseInt("1000",2)); //运行结果:8
以上是关于java十进制二进制互转的主要内容,如果未能解决你的问题,请参考以下文章
Java File ,byte[] , 二进制字符串之间互转
最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类