日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

定点数的编码表示方法

發(fā)布時(shí)間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定点数的编码表示方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 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ǔ)步驟如下:

  • 轉(zhuǎn)換為二進(jìn)制。
  • 二進(jìn)制位數(shù)不足n位的,左邊(高位)補(bǔ)零。
  • 舉例:

    復(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ì)值表示法的步驟如下:

  • 將絕對(duì)值轉(zhuǎn)換為二進(jìn)制。
  • 二進(jìn)制位數(shù)不足n-1位的,左邊(高位)補(bǔ)零。
  • 加上符號(hào)位。
  • 舉例:


    復(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é)論:

  • 一個(gè)負(fù)數(shù)的補(bǔ)碼等于模減去該負(fù)數(shù)的絕對(duì)值。
  • 對(duì)于某一確定的模,某數(shù)減去小于模的另一數(shù),總可以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來(lái)代替。
  • 這樣通過(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ǔ)步驟如下:

  • 將絕對(duì)值轉(zhuǎn)換為二進(jìn)制。
  • 二進(jìn)制位數(shù)不足n位的,左邊(高位)補(bǔ)零。
  • 如果要存儲(chǔ)的整數(shù)是正數(shù)和0,則就這樣存儲(chǔ);如果要存儲(chǔ)的整數(shù)是負(fù)數(shù),則取其補(bǔ)碼進(jìn)行存儲(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ì)階操作(比較大小)。


    參考資料:

  • 深度學(xué)習(xí):C/C++、計(jì)算機(jī)體系
  • 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接
  • 總結(jié)

    以上是生活随笔為你收集整理的定点数的编码表示方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。