网站建设评分,网络平台怎么投诉,商城网站 模板,标准网站建设报价单计算机底层#xff1a;BDC码 BDC码的作用#xff1a; 人类喜欢十进制#xff0c;而机器适合二进制#xff0c;因此当机器要翻译二进制给人看时#xff0c;就会进行二进制和十进制的转换#xff0c;而常规的转换法#xff08;k*位权#xff09;太麻烦。因此就出现了不同…计算机底层BDC码 BDC码的作用 人类喜欢十进制而机器适合二进制因此当机器要翻译二进制给人看时就会进行二进制和十进制的转换而常规的转换法k*位权太麻烦。因此就出现了不同的转换方式BCD码就可以方便地用二进制 表示 十进制。 BCD码的表示方式将二进制的4个bit作为一个十进制。这样就有2^416个的二进制状态再规定这些状态来表达十进制0-9的数字。因为0-9只需要10个的二进制状态因此BCD码就会6种状态是冗余的。 冗余没有用到却可以用到的东西。 有了10中二进制状态就可以与0-9一一对应以达到提高效率的作用 BCD码其中包括了 8421码、余3码、2421码。 8421码 8421码表示的是4个bit位的每位权重的8421,也就是2^3、2^2、2^1、2^0 。这是就是二进制转换十进制时的前四个位权。 这张图就是8421码对应0-9的数字。 如果表示985 91001 81000 50101 结果就是二进制1001 1000 0101 十进制985
8421码的运算 先得出5813得结果然后拆开个位和十位然后直接带入8421码。 最后得出0001 0011 但是这样并不是计算机底层的转换这只是人工转换的一种技巧。比如做题的时候可以这样。但是计算机绝对不是这样 计算机底层的转换 计算机进行58计算机会先将5和8分别对应8421码转换成0101、1000再将这两串二进制丢给ALU计算逻辑单元得出的结果就是1101 但是会发现1101并不在8421码规定的表中也就是说1101在在8421码中没定义。 为了解决这一问题8421码规定如果超出得到1010-11118421码无定义区间内的数那么就会在无定义的这串二进制加上6也就是加上0110。 因为8421码有定义的区间在0-910种二进制排序的可能无定义的区间在10-155种二进制的可能一共16种可能因为4个二进制可以表示16进制你当成16进制看)无定义的数6超出了16高位就会进1。 比如13619其中大于16就会进1得到13。 但计算机并不会看出136而是看成8421码规定的二进制。也就是110101101 0011 最后在按照4个bit 一个8421规定的十进制最后可以拆开变成0001 0011 也就是:0001是1 0011是3即13 例子99用8421码表示 计算机从8421码表映射出来变成10011001计算机再把这些丢到ALU中算出结果为10010计算机发现这串二进制在8421码的表中无法映射出结果说明这串二进制在8421码中无定义计算机就会将这串二进制0110也就是10010011011000计算机6得到一串二进制后按照4bit拆开0001 1000再将每4个bit在8421表中映射最终得到:18 余3码 在8421码规定的每个二进制上加上3也就是0011 会发现余3码是没有权位的。因此将 8421码称为有权码 余3码称为无权码 2421码 2421码是有权码 2421码的4bit的权位分别是2、4、2、1 比如表示3 0x20x41x21x13因此0011表示的是3 2421码规定0-4的数字4bit开头必须是00-5的数字4bit开头必须是1 因为发现2421码的十进制5可以用0101表示同时也可以用1011表示这就发生了歧异为了规范表示避免歧义的发生所以才规定了 2421码规定0-4的数字4bit开头必须是00-5的数字4bit开头必须是1