微机原理吧 关注:3,497贴子:15,919
  • 6回复贴,共1

新手求助,BCD码+6调整

只看楼主收藏回复

我算了半天,人都快算呆了,视频上一下就带过了,貌似过程还是错的,举例24+17,BCD码为
0010 0100
+0001 0111
-------------------
0011 0111 =37…………这里加6,怎么加的?
+0000 0110 这样?
--------------------
0011 0111 =37????这里就晕了~第二个加和第一个加运算方式不一样吗?
视频上相当含糊,求解~~


IP属地:重庆1楼2014-06-27 01:40回复
    00100100+00010111=00111011 低四位>9 AF=1 加六调整 再加上00000110 结果是01000001 既正确的结果41 朋友 你上面的计算真的是。。。。。还是多练习下计算吧


    来自Android客户端3楼2014-07-04 10:32
    收起回复
      2025-08-27 21:21:19
      广告
      不感兴趣
      开通SVIP免广告
      1.BCD码中只有0——9这10个数字,10进制。而计算机运算时,如果低四位向高四位进位,是按逢16进一的规则进行的。而BCD码要求逢10进1,所以只要产生进位就会丢失一个6,结果要补6。(AF -auxiliary carry flag辅助进位标志 加法运算时第3位往第四位有进位或减法运算时,第3位从第4位借位则AF=1)。
      2.运算结果,如果一位BCD码超过9,调整时也要加6即0110。
      以上两种情况任何一种,结果都要加6。
      你的这道题AF=0,不符合第一种情况。但是符合第二种情况。


      来自Android客户端4楼2014-10-02 09:59
      回复