對計算機的原碼,反碼,補碼的理解

2021-07-23 19:56:58 字數 888 閱讀 1498

計算機為什麼要有原碼,反碼,補碼的?

為了解決計算機負數表示與運算問題而引人了反碼和補碼。

現在的計算機,只能識別1和0。所以計算機的內部運算採用的都是二進位制的運算。那麼二進位制中的數字中,如何表示負數呢?規定,最高位為符號位。如果最高位為符號位。那麼二進位制進行運算的過程中就需要判斷符號。為了解決這個問題,從而引出了反碼和補碼的概念。

原碼,反碼,補碼的定義:

在計算機中所有的數字都是以補碼的形式存在並進行運算的。補碼主要就是解決計算機對負數的表示和運算問題。規定正數和0的反碼補碼不變;負數的反碼:最高位符號位1表示負數,剩餘各位取反,補碼則在反碼的基礎上加1.

原碼,反碼,補碼的實質:

那麼上面對補碼定義的本質是什麼?為什麼這麼定義就解決了計算機對負數的處理問題?

因為引入了符號位的概念後 ,對數進行運算時,就需要考慮到符號位的正負。但是計算機是不能直接判斷符號位的正負的(計算機中二進位制數的運算要麼是1要麼是0。)

以32位的二進位制數為例,我們注意到:

1的補碼是1,

-1的補碼是

232-1; 2

的補碼是2,

-2的補碼是

232-2; 3

的補碼是3,

-1的補碼是

232-3;

上面的數,其正數和負數的補碼相加剛好為

232 

,而在32

位的二進位制中,

232其後面的

32位每位都是

0.剛好表示

0.如此就把符號位也計入了普通的二進位制的運算中。也就是說補碼的本質意義就是使符號位也能變成普通的二進位制數的運算。

計算機原碼 反碼 補碼理解

計算機使用一定的編碼方式進行儲存,原碼 反碼 補碼是機器儲存乙個具體數字的編碼方式 1 原碼 第一位表示符號 正數第一位為0,負數第一位為1,其餘位表示值 以8位二進位制表示 1 原碼 0000 0001 1 原碼 1000 0001 第一位為符號位 正負數符號位 所以8位二進位制原碼範圍為 111...

計算機的原碼,反碼,補碼的理解

在學習原碼,反碼和補碼之前,需要先了解機器數和真值的概念.在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如...

計算機 原碼 反碼 補碼

在計算機中,用補碼來表示數字,因為 1 這樣可以比較方便的表示0 保證0作為正數或者負數補碼都是00000000 2 計算時用補碼直接加減就是最終數值 符號位參與運算 1.原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 ...