定點數表示方法 原碼,補碼,反碼,移碼

2022-02-02 09:27:41 字數 3218 閱讀 3703

1. 真值和機器數

真值:數的實際值,用正負號和絕對值的某進製形式來表示,如+1010,-12,-ffff等.

機器數:真值在計算機中的二進位制表示,特點是符號數位化且數的大小受機器字長限制,其表示形式有原碼,補碼,反碼,移碼等.

2. 原碼.

1). 定點小數:

\[}]}} = \left\}

\\ - x = + \left| x \right|, - 1 < x \le 0}

\end} \right.\]

(其中x[原]是機器數,x是真值,最高位為符號位,下同.)

表示範圍:

\[\max = 1 - },\min = - (1 - })\]

(n是指x除符號位的位數,下同)

如: x=+0.1011, x[原]=0.1011

x=-0.1011, x[原]=1.1011

2). 定點整數:

\[} = \left\

x,0 \le x < }}\\

- x = + |x|, - < x \le 0

\end \right.\]

表示範圍:

\[\max  = - 1,\min  =  - ( - 1)\]

如:x=+1011,x[原]=01011

x=-1011,x[原]=11011

3). 特點:

原碼實質上為符號位加上數的絕對值,0正1負;

原碼零有兩個編碼,+0和 -0編碼不同,表示不唯一;

原碼加減運算複雜,乘除運算規則簡單;

原碼表示簡單,易於同真值之間進行轉換.

3. 補碼

1). 定點小數:

\[} = \left\

x,0 \le x < 1\\

2 + x = 2 - |x|, - 1 \le x \le 0

\end \right.(\bmod 2)\]

表示範圍:

\[\max  = 1 - },\min  =  - 1\]

如:x=+0.1011,  x[補]=0.1011

x=-0.1011, x[補]=10+x=10.0000-0.1011=1.0101

2). 定點整數:

\[} = \left\}

}},0 \le x < }\\

} + x = } - |x|, - \le x \le 0}

\end(\bmod })} \right.\]

表示範圍:

\[\max  = - 1,\min  =  - \]

如:x=+1011,x[補]=01011

x=-1011, x[補]=2^5 – |-1011|=100000 – 1011=10101

3). 特點

負數補碼實質上為原碼除符號位按位取反再加1

補碼最高一位為符號位,0正1負;

補碼零有唯一編碼;

補碼能很好用於加減運算;

補碼滿足x[補]+(-x)[補]=0;

補碼最大的優點在於能夠將減法運算轉換成加法運算,其中符號位參與運算,它滿足:

\[\begin}

} + }y)}_} = }} + }}}\\

} - }y)}_} = }} + } - y}}

\end\]

例如:\[\begin

x = } = },y = } = }\\

} = } + } = 01011 + 11011 = 100110(溢位) = 00110 = } = x - y\;\;

\end\]

4). 補碼和原碼轉換.

正數:x[補]=x[原]

負數:按位取反,末位加1(符號位除外)

如:x= -1001001,x[原]=11001001,

x[補]=10110110+1=10110111

5). 補碼和真值的轉換

\[}\left\

}0},}\\

}1},}

\end \right.\]

4. 反碼

1). 定點小數

\[}]}} = \left\}

\\}) + x = 2 + x - }, - 1 < x \le 0}

\end} \right.\]

範圍:\[\max = 1 - },\min = - (1 - })\]

如:x=0.1011,x[反]=0.1011

x=-0.1011,x[反]=1.0100

2). 定點整數

\[}]}} = \left\}

}}}\\

} - 1) + x = } + x - 1, - < x \le 0}

\end} \right.\]

範圍:\[\max  = - 1,\min  =  - ( - 1)\]

如:x=1011,x[反]=01011

x=-1011,x[反]=10100

3). 特點

負數反碼實質上為原碼除符號按位求反,也就是補碼-1;

反碼零有兩個編碼,+0 和 -0 的編碼不同;

反碼難以用於加減運算;

反碼的表示範圍與原碼相同.

5. 移碼:用於表示浮點數的階碼

1). 定義

\[x[移] = + x, - \le x < \]

範圍:\[\max  = } - 1,\min  = 0\]

如:x=+1011,x[移]=11011

x=-1011,x[移]=00101

2). 特點

移碼中符號位表示的規律與原碼,補碼,反碼相反——"1"正"0"負;

移碼為全0時所對應的真值最小,為全1時所對應的真值最大,移碼的大小直觀地反映了真值的大小,這有助於兩個

浮點數進行大小比較;

真值0在移碼中的表示形式是唯一的;

移碼把真值對映到乙個正數域,所以可將移碼視為無符號數,

直接按無符號數規則比較大小;

同一數值的移碼和補碼除最高位相反外,其他各位相同.

3). 移碼和補碼轉換

\[\begin

} = \left\

x,0 \le x < \\

} + x, - \le x \le 0

\end \right.\\

} = + x, - \le x < \\

} = \left\

} + ,0 \le x < \\

} + - } = } - , - \le x \le 0

\end \right.

\end\]

關於定點數 原碼 反碼 補碼的理解

原碼的存在是最自然而然的。把人類書寫的數按轉換成二進位制,正常情況下,轉換成的二進位制有位數要求,比如,轉換成8位的,等等。但是如果給出的數是5,轉換成二進位制是三位,101,這個時候要在左面補0,補齊八位,成為0000 0101。但是,這個時候的二進位制數並不是我們所要的原碼,還缺了最後一步 符號...

計算機中定點數表示方法 原碼

1.原碼表示法 1 定點小數 若定點小數的原碼形式為 x0.x1 x2 xn,共n 1位 則原碼表示的定義是 式中 x 原是機器數,x是真值。2 定點整數 若定點整數的原碼形式為 x0 x1 x2 xn,則原碼表示的定義是 例1 x 0.1001,則 x 原 0.1001 x 0.1001,則 x ...

整數表示 補碼 原碼 反碼

一 補碼 最常見的有符號數的計算機表示方式就是補碼 two s complement 形式。在這個定義中,將字的最高位解釋為負權 negative weight 用函式 最高有效位也成為符號位,他的權重為 2 w 1 是無符號表示中權重的負數。符號位被置為1時,表示值為負,而當設定為0,值為負數。這...