Java 快速的进制转换法【2转8/16进制】

1、8421码极其特点:

8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种,在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。(也就是说因为二进制每一位除了0就是1,如果出现的是1将每一位是1代表的固定值相加即可。)
在这里插入图片描述

2、通过8421码的方式进行二进制和十进制的相互转换:

例如:11001100 = 4 + 8 + 64 +128 = 204

3、二进制转换为八进制:将二进制每三位拆分为一组进行计算,然后拼接到一起。

例如:60转换为八进制:

60对应的二进制为:111100,拆分为三位一组 111 100,111使用8421码结果为7,100使用8421码结果为4,所以60转换为八进制的结果为74。

4、二进制转换为16进制:将二进制每四位拆分为一组进行计算,然后拼接到一起。

例如:60转换为十六进制:

60所对应的二进制为:111100,拆分为四位一组(不足的可以在左侧用0进行补位,不补也是可以的)11 1100,11用8421码算出来的数为3,1100用8421码算出的结果为12,在16进制中12用c表示,所以最终60所对应的十六进制的结果为3c。

5、任意进制用快速转换法转换为二进制:

例如:60用快速转换法转换为二进制:

思路:因为8421码每位分别是:128 64 32 16 8 4 2 1

我们想要将60转换为2进制,60比128和64都小,所以前两位为0,即00

60大于32,60 - 32 = 28,第三位为1,即001

28和16比大于16,28 - 16 = 12,第四位为1,即0011

同理:12 - 8 = 4,第五位为1,即00111

第六位:4 - 4 = 0,第六位为1,即001111

后两位用0补全:最终结果为:00111100,也可以省略前面的0,用111100表示。

6、当然我们也可以使用:除基倒去余的方法来进行十进制到二进制的转换。

猜你喜欢

转载自blog.csdn.net/weixin_44296929/article/details/106895451