負數爲什麼採用補碼錶示

教科書上講,在計算機內,負數一般採用補碼錶示。爲什麼?是爲了將減法運算變成加法運算。至於爲什麼採用補碼就可以實現加法變減法,講得就不太清楚了。也許編寫教材的人,把講解任務交給老師了,而老師卻把它甩給同學們了。

其實很好理解。簡單起見,以8位機爲例。

7 - 7 = 7 + (-7) = 0,整數7的二進制碼爲 0000 0111 ,那麼,這個二進制碼和什麼二進制數加起來等於零呢?是不是 1111 1000 + 1。讓我們看看,0000 0111 + 1111 1000 = 1111 1111,那麼再加 1 ,不就是 0000 0000 嗎(因爲是8位機,進上去的那個1溢出了。就像時鐘,12點過後,又從1點開始了)。

好了,既然 1111 1001 和 7(0000 0111)加起來等於 0 ,那麼,何不採用 1111 1001 來表示 -7 呢(計算機哪管你用什麼表示什麼呢,都不是人規定的嘛!)。這樣,減法就可以變成加法了!而 1111 1001 就是所謂的 -7 的補碼( 整數 7 的原碼 0000 0111 取反加1)。

讓我們驗證一下 12 - 6 = 6 這個式子,12的二進制碼爲 0000 1100 ,6的原碼爲 0000 0110,取反爲 1111 1001,再加1得 1111 1010,即爲 -6,12 - 6 = 12 +(-6)= 0000 1100 + 1111 1010 = 0000 0110,結果爲 6 。

這樣解釋,不知道對不對,但感覺,補碼不奇怪了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章