1、二进制 => 其他进制
1.1、二进制 => 十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。
二进制:0110
=> 02^3 + 12^2 + 12^1 + 02^0 => 12^2 + 12^1 => 4+2
十进制:6
二进制:1011
=> 12^3 + 02^2 + 12^1 + 12^0 => 12^3 + 12^1 + 1*2^0 => 8+2+1
十进制:11
public class Main {public static void main(String[] args) {int i1 = 0b0110;int i2 = 0b1011;System.out.println(i1); // 6System.out.println(i2); // 11}}
1.2、二进制 => 八进制
从低位开始(从右到左),将二进制划分为每三位一组,不够三位的,在左侧补 0 。然后转换为八进制结果即可。
二进制:10110111011
=> 010 110 111 011 => 2 6 7 3 =>
十进制:2673
二进制:0101011001
=> 000 101 011 001 => 0 5 3 1 =>
十进制:531
public class Main {public static void main(String[] args) {int i1 = 0b10110111011;int i2 = 0b0101011001;System.out.println(Integer.toOctalString(i1)); // 2673System.out.println(Integer.toOctalString(i2)); // 531}}
1.3、二进制 => 十六进制
从低位开始(从右到左),将二进制划分为每三位一组,不够三位的,在左侧补 0 。然后分别计算每组二进制的十进制值,拼接到一起得到八进制结果。
二进制:10110111011
=> 0101 1011 1011 =>5 B B =>
十六进制:0x5bb
二进制:0101011001
=> 0001 0101 1001 => 1 5 9 =>
十六进制:0x159
public class Main {public static void main(String[] args) {int i1 = 0b10110111011;int i2 = 0b0101011001;System.out.println(Integer.toHexString(i1)); // 5bbSystem.out.println(Integer.toHexString(i2)); // 159}}
2、八进制 => 其他进制
2.1、八进制 => 二进制
规则:将八进制每一位数,转换成对应的 3 位二进制数即可。
2.2、八进制 => 十进制
规则:从最低位开始,将每个位上的数提取出来,乘以 8 的(位数-1)次方,然后求和。
3、十六进制 => 其他进制
3.1、十六进制 => 二进制
规则:将十六进制每一位数,转换成对应的 4 位二进制数即可。
3.2、十六进制 => 十进制
规则:从最低位开始,将每个位上的数提取出来,乘以 8 的(位数-1)次方,然后求和。
4、十进制 => 其他进制
4.1、十进制 => 二进制
规则:将该数不断除以 2 ,直到商为 0 为止,然后将每步得到的余数都倒过来,就是对应的二进制。
4.2、十进制 => 八进制
规则:将该数不断除以 8 ,直到商为 0 为止,然后将每步得到的余数都倒过来,就是对应的八进制。
4.3、十进制 => 十六进制
规则:将该数不断除以 16 ,直到商为 0 为止,然后将每步得到的余数都倒过来,就是对应的十六进制。
