计算机中16进制或2进制怎么转10进制?-万能进制转换器
看似FF对应的是255,其实,它被转化为了2,5,5这三个数字
接下来我就来介绍一下满五加三,又有一个学名double dabble算法,接下来的计算步骤均由二进制表示,假设二进制刚开始的8位(可以是任意位,取决于数字本身多少位)是初始区,初始区为0的时候结束
以下的步骤均省略了前缀零,初始区均用特殊符号隔开了
首先要转化的二进制:1111 1111
##1.左移1
1 ♂ 1111 1110
##2.除了初始区外其他每4位就检查一下有没有大于等于5,如果大于等于5,这个区域就+3
1 ♂ 1111 1110
仅有的4位是1,保持不变,继续循环第一步
##3.左移1
11 ♂ 1111 1100
是3小于5(每次左移一次就要比较一次),不用管,继续重复
##4.左移1
111 ♂ 1111 1000
发现是7大于5,那么这个4位就要+3
##5.+3
1010 ♂ 1111 1000
初始区保持不变
##6.左移1
1 0101 ♂ 1111 0000
第一个4位是1,第二个4位是5,需要+3
1 1000 ♂ 1111 0000
##7.左移1
11 0001 ♂ 1110 0000
无事发生
##8.左移1
110 0011 ♂ 1100 0000
6大于5,3小于5,第一个四位需要+3
1001 0011 ♂ 1100 0000
##9.左移1
1 0010 0111 ♂ 1000 0000
该+3的地方+3
1 0010 1010 ♂ 1000 0000
##10.左移1
10 0101 0101 ♂ 0000 0000
至此会发现初始区为0了
然后逐一分解前面的3个8421码就会发现
10 表示 2
101 表示 5
101 表示 5
组合起来刚好就是255
是不是非常的exciting呢(。ò ∀ ó。)
你可以再试试其他更多的数字
~( ̄▽ ̄~)~
补充:关于电路的部分,虽然没学过但是也做过这个算法的mc实现,我就提供思路好了
满五加三要点一个就是满五,一个就是+3
满五就是 二进制数不是0,1,2,3,4
0000
0001
0010
0011
0100
这是0-4的8421码,显然可以分成5个逻辑式然后或门合起来再加个非门,具体简化分析我就不说了,数电有化简的公式
然后是+3,这个就简单了,直接全加器+3毫无问题
然后组合成一个模块,除初始区外每四位就放一个
当然以上仅是从满五加三层面来说的,至于有没有合成的更简单的逻辑式,我就不清楚了,补充回答仅供参考
——来自一位数电菜鸡的回答
以上就是关于《计算机中16进制或2进制怎么转10进制?-万能进制转换器》的全部内容,本文网址:https://www.7ca.cn/baike/32656.shtml,如对您有帮助可以分享给好友,谢谢。