定點數和浮點數 C Qt系列之定點數的表示

2021-10-12 04:41:42 字數 996 閱讀 8161

又是很久沒更新了,書接上文,上次談到計算機中數值的表示方式包括定點和浮點,並留了乙個關於定點數表示的懸念,本次將繼續介紹。定點數在計算機中主要表示方式有三種:原碼、補碼和反碼。另外為了方便階碼的運算,還定義了移碼。1、原碼用真實的二進位制值表示數值的編碼叫原碼。原碼表示法在數值前面增加了一位符號位,通常用0表示正數,1表示負數。8位原碼的表示範圍是(-127~-0+0~127),共256個。定點整數的原碼表示:

定點小數的原碼表示:

如:

注意:用帶符號位的原碼表示的數在加減運算時可能會出現問題,如

2、反碼

正整數的反碼就是其本身,而負整數的反碼則通過對其絕對值按位求反來取得。基本規律是:除符號位外的其餘各位逐位取反,即可得到反碼。反碼表示的數和原碼相同,且一一對應。

定點整數的反碼表示:

定點小數的反碼表示:

如:

注意:帶符號位的負數在運算時也會出現問題,如

3、補碼

正數的補碼與原碼一致,負數的補碼是對其原碼(除符號位外)按各位取反,並在末位補加1而得到的。

定點整數的補碼表示:

定點小數的補碼表示:

如:

上面反碼的問題出現在兩個0,在現實計算中,0是不分正負的。因此計算機中引入了補碼概念。負數的補碼就是對反碼加一,而正數不變。因此正數的原碼、反碼和補碼都是一致的。在8位補碼中,用(-128)代替(-0),所以8位補碼的表示範圍為(-128~0~127),共256個。因此(-128)沒有對應的原碼和反碼。

4、移碼

移碼又稱為增碼,是符號位取反的補碼,一般用做浮點數的階碼(具體見上文)表示,因此只用於整數。

定點數和浮點數 定點數和浮點數計算

這個東西其實不是很難,但是確實足夠繞的,因為從十進位制的加減乘除轉換到二進位制的加減乘除就已經很麻煩了,然後為了選拔人才,不給你二進位制,直接給你十六進製制,當然最麻煩的還是補碼和移碼,確實足夠 但是給予足夠的練習還是可以比較熟練的,公式稍後會整理到置頂的公式大全中。可以看完了以後去嘗試一下相關計算...

浮點數 定點數

浮點數是表示小數的一種方法.所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定.整數可以看做是一種特殊的定點數,即小數點在末尾.8086 8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算.一般的浮點數有點象科學計數法,包括符號位 指數部分和尾...

定點數和浮點數

小數字固定不變的數叫做定點數 定點數有三種型別 定義 無符號定點整數沒有符號位,所以它的全部數字都用來表示數字,且它的小數點隱含在最低位後,在數碼序列中並不存在。對於某種數的表示方式,我們關心兩點 序列 xnxn 1.x1x0表示無符號定點整數,則有n 1位正整數 典型值真值 序列 最大正整數 2n...