正在加载图片...
inapub.com 第:章如何实理减法109 下载 注意上图中有3个信号都标识为“SUB”,这是加/减法转换开关。当该信号为0时做加法, 为1时做减法。做减法时,B输入在送入加法器之前先求补。此外,做减法时,通过设置加法 器的进位输入端(CI为1,使由加法器得到的结果加1。对加法而言,求补电路没有起作用 CI输入也就是0。 SUB”信号及加法器的CO输出作为异或门的输入来控制表示上溢/下溢的小灯泡。如果 “SUB”信号为0(表示做加法),则当CO输出为1时灯泡点亮,这表示加法的和大于255 当做减法时,如果被减数大于减数,则加法器的CO端正常输出1,这表示在减法的最后 步中要减去100000000。所以,只有当加法器的CO输出为0时,上溢/下溢灯泡才被点亮。 这时减数大于被减数,差是个负数。上面这个加/减法器现在还不能表示负数 你一定兴致勃勃地想知道该如何实现减法了。 本章一直在谈论负数,但没有指出二进制负数的表示方法。你可能会认为它的表示和十 制负数一样,只需在数的前面加个负号。例如,一77在二进制中写成-1001101。你当然可 以这么表示,但别忘了用二进制数的目的在于只用0和1表示所有的东西,当然也包括一个小 小的负号了 你可以用某一位代替负号,当该位为1时就表示负数,为0时表示正数,这似乎也是可行 的。但还有一种方法,它不仅能表示负数,而且还很适于把正数和负数相加到一起。这种方 法的不足之处是你必须提前决定数字需要多少位 通常用来表示正、负数的方法的好处是这种方法能表示所有的正数、负数。我们把0想象 成向一个方向延伸的无穷的正数流和向另一个方向延伸的无穷的负数流的中点 1000000-999999…-3-2-10123…9999991000000 但是,如果并不需要无限大或无限小的数,而是完全可以确定计算中所遇到的数的范围,情况 便有所不同了。 下面来看看帐户的例子,人们有时可以在帐户上看到负数。假设帐户上从来没有超过 $500的存款,而银行给我们的预支额是$500,这就意味着帐户上的数字在$499~-$500之间 假设我们不会一次取出$500,也不会写一张超过$500的支票,同时我们只处理美元,而不考 虑到更小的货币单位一美分。 这些假设表明帐户能处理的数字范围是从一500~499,总共1000个数。这个限制暗示我 只能用3位十进制数,且可不用负号来表示这1000个数。其中的关键在于我们不需要500 999之间的正数,所以它们就可以用来表示负数。下面是其工作原 用500表示-500 用501表示-499 用502表示-498 用999表示-1 用000表示0 用002表示2第13章 如何实现减法 109 下载 注意上图中有3个信号都标识为“ S U B”,这是加/减法转换开关。当该信号为 0时做加法, 为1时做减法。做减法时, B输入在送入加法器之前先求补。此外,做减法时,通过设置加法 器的进位输入端 ( C I )为1,使由加法器得到的结果加 1。对加法而言,求补电路没有起作用, C I输入也就是0。 “S U B”信号及加法器的 C O输出作为异或门的输入来控制表示上溢 /下溢的小灯泡。如果 “S U B”信号为0(表示做加法),则当C O输出为1时灯泡点亮,这表示加法的和大于 2 5 5。 当做减法时,如果被减数大于减数,则加法器的 C O端正常输出 1,这表示在减法的最后 一步中要减去 1 0 0 0 0 0 0 0 0。所以,只有当加法器的 C O输出为0时,上溢 /下溢灯泡才被点亮。 这时减数大于被减数,差是个负数。上面这个加 /减法器现在还不能表示负数。 你一定兴致勃勃地想知道该如何实现减法了。 本章一直在谈论负数,但没有指出二进制负数的表示方法。你可能会认为它的表示和十 进制负数一样,只需在数的前面加个负号。例如,- 7 7在二进制中写成-1 0 0 11 0 1。你当然可 以这么表示,但别忘了用二进制数的目的在于只用 0和1表示所有的东西,当然也包括一个小 小的负号了。 你可以用某一位代替负号,当该位为 1时就表示负数,为 0时表示正数,这似乎也是可行 的。但还有一种方法,它不仅能表示负数,而且还很适于把正数和负数相加到一起。这种方 法的不足之处是你必须提前决定数字需要多少位。 通常用来表示正、负数的方法的好处是这种方法能表示所有的正数、负数。我们把 0想象 成向一个方向延伸的无穷的正数流和向另一个方向延伸的无穷的负数流的中点: … -1 000 000 -999 999… -3 -2 -1 0 1 2 3… 999 999 1 000 000 … 但是,如果并不需要无限大或无限小的数,而是完全可以确定计算中所遇到的数的范围,情况 便有所不同了。 下面来看看帐户的例子,人们有时可以在帐户上看到负数。假设帐户上从来没有超过 $ 5 0 0的存款,而银行给我们的预支额是$ 500,这就意味着帐户上的数字在 $ 4 9 9~-$ 500之间。 假设我们不会一次取出 $ 5 0 0,也不会写一张超过 $ 5 0 0的支票,同时我们只处理美元,而不考 虑到更小的货币单位—美分。 这些假设表明帐户能处理的数字范围是从- 5 0 0~4 9 9,总共1 0 0 0个数。这个限制暗示我 们只能用3位十进制数,且可不用负号来表示这 1 0 0 0个数。其中的关键在于我们不需要 5 0 0~ 9 9 9之间的正数,所以它们就可以用来表示负数。下面是其工作原理: 用5 0 0表示-5 0 0 用5 0 1表示-4 9 9 用5 0 2表示-4 9 8 用9 9 8表示-2 用9 9 9表示-1 用0 0 0表示0 用0 0 1表示1 用0 0 2表示2
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有