計算機數值運算的基礎硬體就是加法器,所以我們就從加法器講起。
加法器是計算機數值計算的最基礎硬體單元,加減乘除都是以加法器為基礎實現的。
加法器的構成如下圖所示,其中s是和數,c是進製。
半加器電路是指對兩個輸入資料位相加,輸出乙個結果位和進製,沒有進製輸入的加法器電路。 是實現兩個一位二進位制數的加法運算電路。
加法器解決了加法運算,那麼減法運算該怎麼辦呢?
減去乙個數相當於加上這個數的負數,這樣減法就轉換成了加法。
比如:
0x33 - 0x11 ====> 0x33 + (-0x11) // 那麼在計算機中怎麼表示-0x11呢?
所以解決減法問題,其實就是解決負數的表示問題,而眾所周知,絕對值相等的兩個正負數之和為0。
假設我們有正數0000 0000 0000 1111
,我們如何表示其相反數呢?
一般我們的思路是,找乙個數,跟它相加的結果等於0,但是我們發現,
要找出乙個與它相加後結果等於0的數還是要略加思考一下的,因為要計算進製。
所以,為何不找出乙個與它相加後結果是1111 1111 1111 1111
的數1
,然後該數+1(+1溢位,所以相加的和就是0)即是我們所要的答案2
。於是,很容易得出:
0000 0000 0000 1111
+ 1111 1111 1111 0000 // 先找出相加為1111 1111 1111 1111的數,既是反碼
+ 1 // 然後再加1,既是補碼
= 1111 1111 1111 1111 + 1 = (1)0000 0000 0000 0000
一目了然,補碼1111 1111 1111 0001
就是我們想要的答案。
這個應該就是反碼的來歷 ↩︎
這個應該就是補碼的來歷 ↩︎
你真的理解 React Hooks 嗎
react hooks 是在 react 16.8 版本新增的特性,在我看了 react 官網 和一些部落格對 react hook 的講解後還是覺得沒有 get 到本質。大部分的 react hook 的講解都是針對於 react hook 的作用 使用規則 定義規則等。對於新手來說還是覺得會使用...
你真的理解大資料嗎?
大資料很火,已然是一種大勢所趨,是雷軍口中的下乙個吹起豬的風口,是劉強東哥倫比亞大學深造回來的第乙個發展物件。大資料牽動著全國精英的心。然而,你真的理解什麼是大資料嗎?就目前來看,對大資料進行解釋的聲音總體分為兩種,一種是大資料資料量級要大,一般可達到pb級別,有了足量的資料之後,根據資料搭建起乙個...
你真的理解類的使用嗎
在物件導向概念中,類是乙個重要的概念。關於類,我們都很熟悉,都知道類是物件的抽象,類主要用於封裝,繼承等功能。上述知識,如果問起來,每個人可能都能對答如流,然而,在實際寫 的過程中,是否能能做到靈活應用,就很難說了。前幾天,我看自己以前的寫的 發現了乙個在類的封裝方面寫的很爛的場景。具體情況是這樣的...