原碼
原碼
原碼(true form)是一種計算機中對數字的二進位定點表示方法。原碼錶示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
簡單直觀;例如,我們用8位二進位表示一個數,+11的原碼為00001011,-11的原碼就是10001011
原碼
所以原碼的符號位不能直接參與運算,必須和其他位分開,這就增加了硬體的開銷和複雜性
具體定義還分小數和整數:
①小數原碼的定義
[X]=
X(0≤X<1)
1-X(-1
例如:X=+0.1011,[X]原=0.1011
X=-0.1011[X]原=1.1011
②整數原碼的定義
[X]原=
X(0≤X<2(n-1))
2(n-1)-X(-2(n-1)
x為正整數時,[X]原=x;
x為負整數時,[X]原=2的n次方-x;
x為負小數時,[X]原=1-x;
計算機中所有的數均用0,1編碼表示,數字的正負號也不例外,如果一個機器數字長是n位的話,約定最左邊一位用作符號位,其餘n-1位用於表示數值。
在符號位上用"0"表示正數;用"1"表示負數。數值位表示真值的絕對值。凡不足n-1位的,小數在最低位右邊加零;整數則在最高位左邊加零以補足n-1位。這種計算機的編碼形式叫做原碼。
記作X=[X]原。例如在字長n=8的機器內:
小數:[+0.1011]原=0.1011000
[-0.1011]原=1.1011000
整數:[+1011]原=00001011
[-1011]原=10001011
代碼中的小數點”.”是在書寫時為了清晰起見加上去的,在機器中並不出現。
原碼
原碼
原碼是有符號數的最簡單的編碼方式,便於輸入輸出,但作為代碼加減運算時較為複雜。一個字長為n的機器數能表示不同的數字的個數是固定的2^n個,n=8時2^n=256;用來表示有符號數,數的範圍就是-(2^(n-1)-1)~+2^(n-1)-1,n=8是這個範圍就是-127~+127。但是在不需要考慮數的正負時,就不需要用一位來表示符號位,n位機器數全部用來表示是數值,這時表示數的範圍就是0~2^n-1,n=8時這個範圍就是0~255.沒有符號位的數,稱為無符號數。(編輯器無法表示上標下標,可查閱圖片)
目錄