最快的进制转换法之一,8421

目录

推导8421码表

十进制快速转换为二进制

二进制快速转换为十进制

二进制转换为八进制

八进制转二进制

二进制转换为十六进制

十六进制转二进制

其他进制互相转换


bcd中的8421可以方便地进行进制转换。

不仅可以实现二进制和其他进制的互转,还可以在其他进制之间进行互转(先转成二进制再进行互转)。

例如,八进制转十六进制是八进制-二进制-十六进制。

推导8421码表

推8421码表非常简单。

其实就看某个数是如何通过8421构建的。

其中,二进制包含0、1,八进制包含0-7、十进制包含0-9,十六进制包含0-F

对于二进制0和1,其8421码只有两个,分别为0000和0001.

那么,该如何推导十进制的8421码呢?

以3为例,我们可以知道3=2+1,此时8421表达式为XX21,即0011.

对于7呢,我们可以知道7=4+2+1,此时8421表达式为X421,即0111

对于9呢,我们可以知道9=8+1,此时表达式为8XX1,即1001.

如何推导十六进制?原理很简单。其实就是将A-F用大于9的数进行表示。

例如15=F,15=8+4+2+1,则F=1111.

13=8+4+1=1101=B

对于八进制,其实它等价于十进制0-7的码表。

十进制快速转换为二进制

对于更高的十进制数,例如,97

我们需要将8421扩展到2的更高次方。

令97<2^max,Max为正整数

我们可以得到2^max的最大值为128.

新的8421码为128,64,32,16,8,4,2,1(共8个数字,8是4的倍数,便于我们进行计算)

其中128位为0。

64+32=96,还差1.

即97=64+32+1=01100001,我们可以去除高位0.

提示:对于小数部分,我们仍然使用传统的乘二法,它的计算量很小,我们不需要寻求新的解法。

你可以参考:十进制小数转化为二进制小数 | 菜鸟教程 (runoob.com)

二进制快速转换为十进制

例如,对于46,我们按照上述算法将其算成二进制,46=32+8+4+2=00101110

那么101110如何转化为10进制呢。

首先101110为6位,我们需要补齐位数到4的倍数,这里需要补到8位,也就是补成00101110.

很显然,我们按照上面的解法,需要扩展次方,但我们不知道00101110代表多大,不是吗?

你当然可以按照传统的解法进行解,

如果你希望使用8421,其实也是一样的,我们需要找到第一个1所在的位置,也就是第三位,即2^5.

2^5=32

因此,我们继续列出一个扩展的8421:

32 16 8 4 2 1

32位为1,16位为0,8、4、2都为1.

最后的结果就是32+0+8+4+2=46.它与传统的解法其实是一样 。

二进制转换为八进制

假设存在1000101010,求它的八进制。

注意,八进制转二进制转换的结果数字数量为3的倍数,而不是4的倍数,这是一个特例,二进制转八进制也符合这一条,例题它是10位数,你需要将其补齐到12位。如果你遇到了13位,则应当补齐到15位而非16位。

即001 000 101 010。

对码表可得1052Q.

八进制转二进制

以1052Q为例。

当涉及八进制时,我们需要将对应码表的第一位0省略,即通过观察0-7的十进制码表数据与八进制相同,但八进制0-7的首位码均为0,所以我们需要省略它,仅算三位。

这也就是说,我们在使用421码。

其中,2=010,5=101,0=000,1=001

则1052Q=001 000 101 010B

二进制转换为十六进制

假设存在一串二进制0100101111010011,求其十六进制。

将其按四个一组划分,不足补齐。得:

0100 1011 1101 0011

照抄码表得4,11,13,3

即4,B,D,3,得4BD3H

十六进制转二进制

假设存在一个十六进制4BD3,求十六进制。

4=0100

B=11=1011

D=13=1101

3=3=0011

结果为0100 1011 1101 0011.

其他进制互相转换

先转成二进制再进行互转

易错点:

八进制没有按照3位划分。

10进制数没有按照10进制的计算方法进行扩展8421计算。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值