計算機中數的表示

2021-09-22 06:38:43 字數 777 閱讀 8937

異或(xor,exclusive or)運算的真值表如下:ab

a xor b00

0011

1011

10用一句話概括就是:兩個運算元相同則結果為0,兩個運算元不同則結果為1。

與非(nand)和或非(nor)運算就是在與、或運算的基礎上取反:ab

a nand b00

1011

1011

10 a

ba nor b00

1010

1001

102』s complement表示法規定:正數不變,負數先取反碼再加1。

2』s complement表示法的計算規則有些不同:減法轉換成加法,忽略計算結果最高位的進製,不必加回到最低位上去。

要驗證這條規則得考慮四種情況:

如何判斷產生了溢位呢?我們還是分四種情況討論:如果兩個正數相加溢位,結果一定是負數;如果兩個負數相加溢位,結果一定是正數;一正一負相加,無論結果是正是負都不可能溢位。

其實計算機做加法時並不區分運算元是有符號數還是無符號數,計算過程都一樣,比如上面的例子也可以看作無符號數的加法:

1000 0010 +1111 1000 = ?
如果把這兩個運算元看作有符號數-126和-8相加,計算結果是錯的,因為產生了溢位;但如果看作無符號數130和248相加,計算結果是122進1,也就是122+256,這個結果是對的。

具體計算內容見十四章第四節。

由於浮點數表示的精度有限,做浮點運算時要注意精度損失(significance loss)問題。

計算機中數的表示2

本篇文章接上篇 計算機中數的表示 1.需要注意的問題 float a 11.4 double b 11.4 由於float和double在表示小數上的區別,所以在程式中不能用if a b 因為0.4不能用有限位的二進位制數表示,a和b中儲存的是11.4的近似值,且由於兩者精度的不同,所以a和b永遠不...

計算機中數的表示與儲存

原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的反碼為1111 1010。補碼 正數的補碼就是其原碼 負...

計算機中數的表示與儲存

原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的反碼為1111 1010。補碼 正數的補碼就是其原碼 負...