專欄導航
本節文章分別屬于《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,十六進制與二進制的相互轉換
回到目錄
下一篇:無