0%

二进制对照表

文章字数:442,阅读全文大约需要1分钟
2^n|10进制值|2进制
—|—|—:
1|2|10
2|4|100
3|8|1000
4|16|10000
5|32|100000
6|64|1000000
7|128|10000000
8|256|100000000
9|512|1000000000
10|1024|10000000000
11|2048|100000000000
12|4096|1000000000000
13|8192|10000000000000
14|16384|100000000000000
15|32768|1000000000000000
16|65536|10000000000000000
17|131072|100000000000000000
18|262144|1000000000000000000
19|524288|10000000000000000000
20|1048576|100000000000000000000

生成算法

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
final int MAX_POW = 20;
System.out.println("2^n|10进制值|2进制");
System.out.println("---|---|---:");
for (int i = 1; i <= MAX_POW; i++) {
int radix10 = Double.valueOf(Math.pow(2, i)).intValue();
System.out.print(i + "|" + radix10);
System.out.println("|`" + Integer.toString(radix10, 2) + "`");
}
}

进制转换

Integer类提供了方法,可以把任意进制的数转换成Integer类型的值。也可以将Integer输出成任意进制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
int initVal = 12354;
// 输出
String radix2 = Integer.toString(initVal, 2);
String radix10 = Integer.toString(initVal, 10);
String radix16 = Integer.toString(initVal, 16);
// 输入
Integer fromRadix2 = Integer.valueOf(radix2, 2);
Integer fromRadix10 = Integer.valueOf(radix10, 10);
Integer fromRadix16 = Integer.valueOf(radix16, 16);
// 结果
System.out.println("radix2 = " + radix2);
System.out.println("radix10 = " + radix10);
System.out.println("radix16 = " + radix16);
System.out.println("fromRadix2 = " + fromRadix2);
System.out.println("fromRadix10 = " + fromRadix10);
System.out.println("fromRadix16 = " + fromRadix16);
}

运行结果

1
2
3
4
5
6
radix2 = 11000001000010
radix10 = 12354
radix16 = 3042
fromRadix2 = 12354
fromRadix10 = 12354
fromRadix16 = 12354