定点数的编码表示方法
文章目錄
- 1 無(wú)符號(hào)表示法
- 1.1 無(wú)符號(hào)表示法的特點(diǎn)
- 1.2 無(wú)符號(hào)表示法的存儲(chǔ)步驟
- 2 符號(hào)加絕對(duì)值表示法(即原碼,Sign and Magnitude)
- 2.1 符號(hào)加絕對(duì)值表示法的特點(diǎn)
- 2.2 符號(hào)加絕對(duì)值表示法的存儲(chǔ)步驟
- 2.3 符號(hào)加絕對(duì)值表示法的缺點(diǎn)
- 3 補(bǔ)碼表示法(模運(yùn)算,modular運(yùn)算)
- 3.1 補(bǔ)碼表示法的基本概念
- 3.2 如何取補(bǔ)碼
- 3.3 補(bǔ)碼表示法的存儲(chǔ)步驟
- 3.4 補(bǔ)碼表示法恢復(fù)原數(shù)的方式
- 4 移碼表示法(Excess biased notion)
- 4.1 移碼表示法的概念
- 4.2 移碼表示法的操作方式
- 4.3 移碼表示法的優(yōu)點(diǎn)
1 無(wú)符號(hào)表示法
1.1 無(wú)符號(hào)表示法的特點(diǎn)
無(wú)符號(hào)表示法只能用于存儲(chǔ)無(wú)符號(hào)整數(shù),也就是正整數(shù)。
1.2 無(wú)符號(hào)表示法的存儲(chǔ)步驟
無(wú)符號(hào)表示法存儲(chǔ)步驟如下:
舉例:
復(fù)原就是存儲(chǔ)步驟的逆運(yùn)算。
2 符號(hào)加絕對(duì)值表示法(即原碼,Sign and Magnitude)
2.1 符號(hào)加絕對(duì)值表示法的特點(diǎn)
在存儲(chǔ)整數(shù)中并不常用,卻通常用于存儲(chǔ)模擬信號(hào)(存儲(chǔ)音頻的部分會(huì)用到)。
正號(hào)用0表示,負(fù)號(hào)用1表示,數(shù)值部分不變。
2.2 符號(hào)加絕對(duì)值表示法的存儲(chǔ)步驟
符號(hào)加絕對(duì)值表示法的步驟如下:
舉例:
復(fù)原就是存儲(chǔ)步驟的逆運(yùn)算。
2.3 符號(hào)加絕對(duì)值表示法的缺點(diǎn)
符號(hào)加絕對(duì)值表示法雖然容易,但是具有如下缺點(diǎn):
- 0的表示不唯一,故不利于程序員編程。
- 加、減運(yùn)算方式不統(tǒng)一。
- 需額外對(duì)符號(hào)位進(jìn)行處理,故不利于硬件設(shè)計(jì)。
- 特別當(dāng)a < b時(shí),實(shí)現(xiàn)a - b比較困難。
從50年代開(kāi)始,整數(shù)都采用補(bǔ)碼表示法,但浮點(diǎn)數(shù)的尾數(shù)用原碼定點(diǎn)小數(shù)表示。
3 補(bǔ)碼表示法(模運(yùn)算,modular運(yùn)算)
3.1 補(bǔ)碼表示法的基本概念
重要概念: 在一個(gè)模運(yùn)算系統(tǒng)中,一個(gè)數(shù)與它除以“模”后得余數(shù)等價(jià)。
現(xiàn)實(shí)世界中的模運(yùn)算系統(tǒng):時(shí)鐘是一種模12系統(tǒng)。
我們可以得出如下結(jié)論:
這樣通過(guò)補(bǔ)碼(modular運(yùn)算),我們就實(shí)現(xiàn)了+和-的統(tǒng)一。
補(bǔ)碼的定義: 假設(shè)補(bǔ)碼有n位,則[X]補(bǔ) = 2 ^ n + X (-2 ^ (n-1) <= X < 2 ^ (n-1), mod 2 ^ n)。
3.2 如何取補(bǔ)碼
取補(bǔ)碼主要有如下兩種方法:
取反加1:
通過(guò)如下的計(jì)算我們可以很清晰的看出為什么是取反加1:
從右邊開(kāi)始復(fù)制,直到復(fù)制第一個(gè)1然后其他位取反:
注: 將一個(gè)數(shù)連續(xù)取兩次補(bǔ)碼,最終得到原數(shù)。
求特殊數(shù)的補(bǔ)碼:
3.3 補(bǔ)碼表示法的存儲(chǔ)步驟
無(wú)符號(hào)表示法的存儲(chǔ)步驟如下:
舉例:
3.4 補(bǔ)碼表示法恢復(fù)原數(shù)的方式
理論做法:
實(shí)際上我們都是如果如下形式進(jìn)行求補(bǔ)碼的真值的:
規(guī)律:判斷正負(fù)
- 轉(zhuǎn)換結(jié)果的最高位是0,則被轉(zhuǎn)換的數(shù)為正數(shù),數(shù)值部分相同。
- 轉(zhuǎn)換結(jié)果的最高位是1,則被轉(zhuǎn)換的數(shù)為負(fù)數(shù),數(shù)值各位取反,末位加1。
舉例:
4 移碼表示法(Excess biased notion)
4.1 移碼表示法的概念
移碼表示是指將每一個(gè)數(shù)值加上一個(gè)偏置常數(shù)(Excess/bias)。
4.2 移碼表示法的操作方式
通常,當(dāng)編碼位數(shù)為n時(shí),bias取2^(n-1)
或 2^(n-1) - 1(如IEEE754)。
(上圖應(yīng)該是當(dāng)bias為2^(n-1) 時(shí))
4.3 移碼表示法的優(yōu)點(diǎn)
使用移碼表示法,便于浮點(diǎn)數(shù)加減時(shí)的對(duì)階操作(比較大小)。
參考資料:
總結(jié)
以上是生活随笔為你收集整理的定点数的编码表示方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。