【Java篇02】二进制、十进制、十六进制之间的相互转换

1. 二进制 -> 十六进制

eg: 二进制数 1001 1010;
通过1248赋值法,即

1001 1010
8421 8421
---------------
1+8=9 , 2+8=10;

即二进制数1001 1010,对应十六进制的数为 ox 9A(A对应10);

2. 二进制 -> 十进制

流程是:二进制 -> 十六进制 -> 十进制
eg: 二进制数 1001 1010;
首先通过1248赋值法,二进制转十六进制,即

1001 1010
8421 8421
---------------
1+8=9 , 2+8=10;

即十六进制的数为 ox 9A(A对应10);

然后十六进制转十进制:

ox 9A = 9x16 + 10 = 154;

所以,二进制1001 1010转换成十进制就是154。

3. 十进制 -> 二进制

流程是:通过连续对 2 取商和余,直到商为0为止,即
eg:十进制数154

154/2 = 77……0
77/2 = 38……1
38/2 = 19……0
19/2 = 9 ……1
9/2 = 4 ……1
4/2 = 2 ……0
2/2 = 1 ……0
1/2 = 0 ……1

将余从下往上,倒序排列,得到1001 1010
所以,十进制的154,对应二进制数为1001 1010。

4. 十进制 -> 十六进制

流程是:通过连续对 16 取商和余,直到商为0为止,即
eg:十进制数1610

1610/16=100……10(A);
100 /16= 6 ……4;
6 /16= 0 ……6;

将余从下往上,倒序排列,得到64A
所以,十进制的1610,对应十六进制的ox 64A

5. 十六进制 -> 二进制

流程是:将十六进制的每一个数都转换成4位二进制数
eg: 十六进制的ox 64A

A=10=8+2;
4=4;
6=4+2;

那么对应的二进制数就是:ob 0110 0100 1010

6. 十六进制 -> 十进制

流程是:将十六进制的每一个数都乘以16的某个幂
eg: 十六进制的ox 64A

6 x 16² + 4 x 16¹ + 10 x 16º = 1536 + 64 + 10 = 1610;

那么对应的十进制数就是:1610。

猜你喜欢

转载自blog.csdn.net/wx1528159409/article/details/83512502