原碼
原碼(True form)是電腦運算的名詞,是指「未經更改」的碼。為了便於ALU的設計,又發展出一補碼、二補碼等轉換過的碼。
原碼是指一個二進制數左邊加上符號位後所得到的碼,且當二進制數大於0時,符號位為0;二進制數小於0時,符號位為1;二進制數等於0時,符號位可以為0或1(+0/-0)。
原碼的具體定義
電腦中所有的數均用0、1編碼表示,數字的正負號也不例外,如果一個機器數字長是n位的話,約定最左邊一位用作符號位,其餘n-1位用於表示數值。
小數原碼的定義
[X]原 =
例如:[+0.1011]原=0.1011000
[-0.1011]原=1.1011000
(代碼中的小數點「.」是在書寫時為了清晰起見加上去的,在機器中並不出現。)
整數原碼的定義
[X]原 =
例如:[+1011]原=00001011
[-1011]原=10001011
編碼方式
原碼是最簡單的編碼方式,便於輸入輸出,但作為代碼加減運算時較為複雜。一個字長為n的機器數能表示不同的數字的個數是固定的 個。當 時,能表示256個數字。
有符號數
用來表示有符號數,數的範圍就是 。當 時,這個範圍就是 。
無符號數
在不需要考慮數的正負時,就不需要用一位來表示符號位,n位機器數全部用來表示是數值,這時表示數的範圍就是 。當 時,這個範圍就是 。
原碼的優點
簡單直觀;例如,我們用8位元二進制表示一個數,則+11的原碼為00001011,-11的原碼就是10001011。
原碼的缺點
原碼不能直接參加運算,可能會出錯。例如數學上,1+(-1)=0,而在二進制中00000001+10000001=10000010,換算成十進制為-2。顯然出錯了。
所以原碼的符號位不能直接參與運算,必須和其他位分開,這就增加了硬件的開銷和複雜性。
參見
這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |