計算機負數加法運算

2022-09-04 08:24:12 字數 536 閱讀 8353

計算機負數相加

-1 = 1111 1111 

-2 =1111 1110

=  1111 1101 補碼為0000 0011 以補碼形式

#include

#include

int main(void)

unsigned j = 10;

int i = -20;

printf("%ud\n",i + j);

(i + j > 10000) ? (printf(">10000")) : (printf("<10000"));

printf("\n");

return 0;

列印結果是 -10 >10000

int i  =  -20;

unsigned  j  =  10;

i + j的結果為什麼是-10呢?負數加無符號整數結果不應該預設為無符號數嗎?

無符號數和有符號數比較,預設將無符號數轉為有符號數,因為負數在記憶體中以補碼形式存在

比如-1 為1的補碼1111 1111 轉為無符號數為255

計算機負數補碼

在計算機系統中,數值一律用補碼來表示 儲存 主要原因 使用補碼,可以將符號位和其它位統一處理 同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位 符號位 有進製,則進製被捨棄。2 補碼與原碼的轉換過程幾乎是相同的。數值的補碼表示也分兩種情況 1 正數的補碼 與原碼相同。例如,9...

計算機表示正負數

國內很多教材都有其為本科教材,對於計算機表示負數大概只有一句話,取反加一 並稱之為 補碼 今天偶然翻閱資料,覺得是時候徹底解決一下這個問題了。首先 二進位制補碼 只是人為定義的乙個概念,與 黃赤交角 一樣。不是在說明問題的本質,而是在解釋解決問題的辦法。計算機表示負數,運用的是 溢位原理 溢位原理,...

算數運算加法 為什麼計算機能「算數」

為什麼計算機能 算數 為了更容易理解我們需要把問題再精分一下 1 在計算機中,數 是如何表示的?2 在計算機中,數 是如何計算的?3 在物理上,數 的計算是如何實現的?在計算機中儲存和要處理的資料都是使用二進位制的表示的,也就是只有 0 和 1 兩個基本數,如果遇到相當於十進位制的 2 的時候就要進...