计算机基础:二进制基础14,二进制加法
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
(一)WIn32 专栏导航
上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换
回到目录
下一篇:无
(二)MFC 专栏导航
上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换
回到目录
下一篇:无
本节前言
本来呢,数制知识,我已经是写完了的。但是呢,后来发现,还需要补充一点东西。那就是,二进制,八进制与十六进制的加减法,我需要来提一提。
本节呢,我们来讲解二进制加法。
一. 两个数的加法
假定,我们计算的,是两个三位的二进制数加法。
当初,我们学习十进制的加法的时候,我们都是用列竖式的方法来计算的。个位与个位相加,是为与十位相加,百位与百位相加,等等。然后呢,还会涉及进位的问题。个位相加,如果得数大于或等于10 的时候,还要向十位进 1 。十位相加的时候,如果得数大于或等于10 的时候,还要向百位进 1 。
二进制加法,与此类似。
对于两个三位二进制数的加法,它是说,两个数的位0 与位0 相加,位1 与位1 相加,位2 与位2 相加。每一位在计算出了本数位的得数的时候,如果大于或等于2,还要向高位进1 。位0 与位0相加,如果得数大于或等于2,则要向 位1 进1 。位1 与位1 相加,如果得数大于或等于2,则要向 位2 进1 。位2 与位2 相加,如果得数大于或等于2,则要向 位3 进1 。
(一)位0 的加法
对于位0 的加法,它所涉及的数,是两个,分别为加数1 和加数2 。所形成的加法的类型,一共是三种。
第一种,两个加数都为0 。这种情况下,得数为0 。在列竖式的时候,当前位,也就是位0,它的结果为0。向高位的进位,也就是向位1 的进位,为 0 。
第二种,两个加数,一个是0,另一个是1,这种情况下,得数为1 。在列竖式的时候,当前位,也就是位0,它的的结果为1 。向高位的进位,也就是向位1 的进位,为 0 。
第三种,两个加数都是1 。在这种情况下,得数为 十进制的 2 。在列竖式的时候,当前位,也就是位0,它的结果为 0 。向高位的进位,也就是向位1 的进位,为 1 。
(二)其余位的加法
如果参与加法运算的两个二进制数,都是三位的,那么,其余位指的就是位1 和位 2 。
如果参与运算的两个二进制数,都是四位的,那么,其余位指的就是位1,位2,位3 。
如果参与运算的两个二进制数,都是八位的,那么,其余位指的就是位1,位2,位3,直到位7 。
如果参与运算的两个二进制数,都是 N 位的,那么,其余位指的就是位1,位2,位3,直到位 (N-1)。总之,是除了位0 之外的所有位。
在这里,其余位的加法,它主要是涉及了三个数,其中的两个数是两个加数,另外的一个数就是来自低位的进位。低位的进位,要么是0,要么是1 。
由于是二进制数的加法,所以,其余位的加法里面,所涉及的三个数的加法,都是说,要么是0,要么是1 。在这三个数的加法中,包含了四种情况。
第一种情况,三个数都是 0 。这种情况下,当前位的结果为 0,向高位的进位也是 0 。
第二种情况,三个数都是 1 。在这种情况下,当前位的结果为 1,向高位的进位也是 1 。
第三种情况,三个数里面,有两个0,一个1 。在这种情况下,当前位的结果为 1,向高位的进位为 0 。
第四种情况,三个数里面,有两个1,一个0 。在这种情况下,当前位的结果为 0,向高位的进位为 1 。
到了这里,对于二进制数的加法运算,我认为,讲的就差不多了。接下来,我们来看几个例题。
二. 例题
例题1
计算 0B 101 + 0B 011
两个数的位0 都是1,根据第一分节的(一)分节的讲解,位0 加法的两个数都是 1 的情况下,则计算结果为,位0 的结果为0,向位1 的进位为1 。
我们来看位1,位1 的两个数,一个是0,一个是1,来自位0 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个 0 ,计算结果为,位1 的结果为0,向位2 的进位为 1 。
我们来看位2 。位2 的两个数,一个是0,一个是1,来自位1 的进位为 1 。所以呢,两个加数与低位进位所组成的三个数,包含了两个1 和一个 0 ,计算结果为,位2 的结果为0,向位3 的进位为 1 。
两个数的最高位为位2,不包含位3 。然而,在计算的时候,向位3 进位了,因此,若是将位3 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位3 为1,位2 为 0,位1 为0,位0 为 0 。最终的结果,为 0B 1000 。
例题2
计算 0B 1011 + 0B 1010
两个数的位0,一个是0,一个是1,计算结果为,位0 的结果为1,向位1 的进位为 0 。
两个数的位1,均为1,来自位0 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位1 的结果为0,向位 2 的进位为 1 。
两个数的位2,均为0,来自位1 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了两个0 和一个1 。计算结果为,位2 的结果为 1,向位 3 的进位为 0 。
两个数的位3,均为1,来自位2 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位3 的结果为0,向位 4 的进位为 1 。
两个数的最高位为位3,不包含位4 。然而,在计算的时候,向位4 进位了,因此,若是将位4 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位4 为1,位3 为 0,位2 为 1,位1 为0,位0 为 1 。最终的结果,为 0B 10101 。
例题3
计算 0B 1110 + 0B 1101
两个数的位0,一个是0,一个是1,计算结果为,位0 的结果为1,向位1 的进位为 0 。
两个数的位1,一个是0,一个是1,来自位0 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个0 和一个1 。计算结果为,位1 的结果为1,向位 2 的进位为 0 。
两个数的位2,均为1,来自位1 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位2 的结果为 0,向位 3 的进位为 1 。
两个数的位3,均为1,来自位2 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了三个1 。计算结果为,位3 的结果为1,向位 4 的进位为 1 。
两个数的最高位为位3,不包含位4 。然而,在计算的时候,向位4 进位了,因此,若是将位4 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位4 为1,位3 为 1,位2 为 0,位1 为1,位0 为 1 。最终的结果,为 0B 11011 。
结束语
到了这里,二进制的加法,我就算是讲完了。
讲的时候,还是觉得有点儿不好讲。
希望大家看懂了我在本节所讲的东西。
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
(一)WIn32 专栏导航
上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换
回到目录
下一篇:无
(二)MFC 专栏导航
上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换
回到目录
下一篇:无