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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定点数的编码表示方法

發布時間:2025/4/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定点数的编码表示方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1 無符號表示法
      • 1.1 無符號表示法的特點
      • 1.2 無符號表示法的存儲步驟
    • 2 符號加絕對值表示法(即原碼,Sign and Magnitude)
      • 2.1 符號加絕對值表示法的特點
      • 2.2 符號加絕對值表示法的存儲步驟
      • 2.3 符號加絕對值表示法的缺點
    • 3 補碼表示法(模運算,modular運算)
      • 3.1 補碼表示法的基本概念
      • 3.2 如何取補碼
      • 3.3 補碼表示法的存儲步驟
      • 3.4 補碼表示法恢復原數的方式
    • 4 移碼表示法(Excess biased notion)
      • 4.1 移碼表示法的概念
      • 4.2 移碼表示法的操作方式
      • 4.3 移碼表示法的優點

1 無符號表示法

1.1 無符號表示法的特點

無符號表示法只能用于存儲無符號整數,也就是正整數。

1.2 無符號表示法的存儲步驟

無符號表示法存儲步驟如下:

  • 轉換為二進制。
  • 二進制位數不足n位的,左邊(高位)補零。
  • 舉例:

    復原就是存儲步驟的逆運算。


    2 符號加絕對值表示法(即原碼,Sign and Magnitude)

    2.1 符號加絕對值表示法的特點

    在存儲整數中并不常用,卻通常用于存儲模擬信號(存儲音頻的部分會用到)。


    正號用0表示,負號用1表示,數值部分不變。

    2.2 符號加絕對值表示法的存儲步驟

    符號加絕對值表示法的步驟如下:

  • 將絕對值轉換為二進制。
  • 二進制位數不足n-1位的,左邊(高位)補零。
  • 加上符號位。
  • 舉例:


    復原就是存儲步驟的逆運算。

    2.3 符號加絕對值表示法的缺點

    符號加絕對值表示法雖然容易,但是具有如下缺點:

    • 0的表示不唯一,故不利于程序員編程。
    • 加、減運算方式不統一。
    • 需額外對符號位進行處理,故不利于硬件設計。
    • 特別當a < b時,實現a - b比較困難。

    從50年代開始,整數都采用補碼表示法,但浮點數的尾數用原碼定點小數表示。


    3 補碼表示法(模運算,modular運算)

    3.1 補碼表示法的基本概念

    重要概念: 在一個模運算系統中,一個數與它除以“模”后得余數等價。

    現實世界中的模運算系統:時鐘是一種模12系統。

    我們可以得出如下結論:

  • 一個負數的補碼等于模減去該負數的絕對值。
  • 對于某一確定的模,某數減去小于模的另一數,總可以用該數加上另一數負數的補碼來代替。
  • 這樣通過補碼(modular運算),我們就實現了+和-的統一。

    補碼的定義: 假設補碼有n位,則[X]補 = 2 ^ n + X (-2 ^ (n-1) <= X < 2 ^ (n-1), mod 2 ^ n)。

    3.2 如何取補碼

    取補碼主要有如下兩種方法:

    取反加1:

    通過如下的計算我們可以很清晰的看出為什么是取反加1:

    從右邊開始復制,直到復制第一個1然后其他位取反:

    注: 將一個數連續取兩次補碼,最終得到原數。

    求特殊數的補碼:

    3.3 補碼表示法的存儲步驟

    無符號表示法的存儲步驟如下:

  • 將絕對值轉換為二進制。
  • 二進制位數不足n位的,左邊(高位)補零。
  • 如果要存儲的整數是正數和0,則就這樣存儲;如果要存儲的整數是負數,則取其補碼進行存儲。
  • 舉例:

    3.4 補碼表示法恢復原數的方式

    理論做法:

    實際上我們都是如果如下形式進行求補碼的真值的:

    規律:判斷正負

    • 轉換結果的最高位是0,則被轉換的數為正數,數值部分相同。
    • 轉換結果的最高位是1,則被轉換的數為負數,數值各位取反,末位加1。

    舉例:


    4 移碼表示法(Excess biased notion)

    4.1 移碼表示法的概念

    移碼表示是指將每一個數值加上一個偏置常數(Excess/bias)。

    4.2 移碼表示法的操作方式

    通常,當編碼位數為n時,bias取2^(n-1)
    或 2^(n-1) - 1(如IEEE754)。

    (上圖應該是當bias為2^(n-1) 時)

    4.3 移碼表示法的優點

    使用移碼表示法,便于浮點數加減時的對階操作(比較大小)。


    參考資料:

  • 深度學習:C/C++、計算機體系
  • 計算機系統基礎(一):程序的表示、轉換與鏈接
  • 總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。