目录 上一页 下一页 下一章

第10章 细节补充 -269-

第10章 细节补充

  任何一个人都不愿意学习不完整的知识,特别是在交了"全额"学费之后。试想花了不少钱买了一本汇编语言教材,到头来却只学到了部分指令,不得不再花钱买另一本新书才把指令学全,这真是一件令人遗憾的事。说实在的,连笔者都觉得遗憾。
  出于这样的原因,笔者才写了这一章。不仅为了将没有学到的指令补上,而且也想多讨论一些比较重要的知识。当然也能免去读者多花学费的经济负担。

10.1 BCD运算
  二进制数固然适合于机器进行处理,但是它并不适用于人类,即使是将其表示成十六进制形式也仍然不便于记忆理解。这样一来我们编制一些进行数学计算的程序就不得不解决十进制数与二进制数之间的转换问题,以便于我们输入数据和观察运算结果。
  由此看来,如果能够使二进制数与十进制数之间的对应关系得以简化,或者利用二进制数的形式直接表达十进制数,那么就能使编程工作变得简单一些。
  在前面我们已经讨论过二进制数与十进制数之间的转换方法,以四位二进制数为例,它与十进制数、十六进制数的对应关系如表10-1所示:
表10-1 二进制数、十进制数、十六进制数对照表
二进制00000001001000110100010101100111
十进制01234567
十六进制01234567
二进制10001001101010111100110111101111
十进制89101112131415
十六进制89ABCDEF
  由表10-1我们可以看到十进制数0-9与二进制数0000-1001之间可以看作是固定的4对1的对应关系,即二进制数的4个数位对应十进制数一个数位。然而从10以后就变成了二进制数4个数位对应十进制数两个数位了。10以后的十进制数与二进制数的对应失去了直观性。
  如何使大于10的十进制数与二进制数的对应关系变得很直观呢?不妨采用这样的方法:把十进制数10表示成一个八位二进制数00010000,其中高4位0001表示十位上的1,而低4位0000则表示个位上的0。也就是说对于十进制数的每一个数位我们都用一个4位二进制数来表示。
  这样一来像56这样的十进制数就可以表示成01010110了,高4位0101对应十位的5,低4位0110就对应了个位的6。这显然要比56真正对应的那个二进制数00111000要好理解。同理,十进制数348就可以表示成001101001000,其中0011就是百位的3,0100对应十位的4,1000就是

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章