什麼是餘3碼?\n


餘3碼(或 XS3)是一種用於表示十進位制數的非加權碼。它是一種自補二進位制編碼十進位制(BCD)碼和數值系統,具有偏差表示。它在算術運算中尤其重要,因為它克服了使用 8421 BCD 碼相加兩個十進位制數字(其和超過 9)時遇到的缺點。餘3碼算術使用與普通非偏差 BCD 或二進位制 位置數制 不同的演算法。

餘3碼的表示

餘3碼是非加權的,可以透過對每個十進位制數字加 3 來獲得,然後可以使用每個數字的 4 位二進位制數來表示。給定二進位制數的餘3碼等效值是使用以下步驟獲得的

  • 找到給定二進位制數的十進位制等效值。
  • 將十進位制數的每個數字加 +3。
  • 將新獲得的十進位制數轉換回二進位制數以獲得所需的餘3碼等效值。

您可以將 0011 新增到二進位制編碼十進位制數 (BCD) 中的每個四位組,以獲得所需的餘3碼等效值。

以下是十進位制數字的餘3碼 -

十進位制數字
BCD 碼
餘3碼
0
0000
0011
1
0001
0100
2
0010
0101
3
0011
0110
4
0100
0111
5
0101
1000
6
0110
1001
7
0111
1010
8
1000
1011
9
1001
1100

程式碼 0000 和 1111 不用於任何數字。

示例 1 - 將十進位制數 23 轉換為餘3碼。

因此,根據餘3碼,我們需要在 十進位制數 中的兩個數字上都加 3,然後將結果轉換為每個數字的 4 位二進位制數。所以,

= 23+33=56 =0101 0110,這是給定十進位制數 23 的所需餘3碼。

示例 2 - 將十進位制數 15.46 轉換為餘3碼。

根據餘3碼,我們需要在十進位制數中的兩個數字上都加 3,然後將結果轉換為每個數字的 4 位二進位制數。所以,

= 15.46+33.33=48.79 =0100 1000.0111 1001,這是給定十進位制數 15.46 的所需餘3碼。

轉換為二進位制編碼十進位制 (BCD) 碼

應該注意的是,對於給定的餘3碼,可以透過將數字分成 4 位一組(從整數部分的最低有效位開始,從分數部分的最左邊的數字開始)來確定等效的十進位制數。然後從每個四位組中減去 0011(=3),這將是該數字的二進位制十進位制數字 (BCD) 形式。現在,您還可以透過將每個 4 位組轉換為十進位制數字來將此 BCD 碼轉換為十進位制數。

示例 - 將餘3碼 1001001 轉換為 BCD 和十進位制數。

因此,將每個組分成 4 位,即 0100 1001,並從給定數字中減去 0011 0011。所以,

= 0100 1001 -0011 0011 =0001 0110

因此,二進位制編碼十進位制數為 0001 0110,十進位制數為 16。

自補性

餘3碼是非加權的自補碼。自補二進位制碼總是對其自身進行補碼。二進位制數的補碼可以透過用 1 替換 0 和用 0 替換 1 從該數中獲得。二進位制數及其補碼之和始終等於十進位制 9。換句話說,餘3碼的 1 的補碼是對應十進位制數的 9 的補碼的餘3碼。

例如,十進位制數 5 的餘3碼是 1000,1000 的 1 的補碼是 0111,它是十進位制數 4 的餘3碼,它是數字 5 的 9 的補碼。

餘3碼的優點

以下是餘3碼的優點:

  • 這些是非加權的二進位制十進位制碼。
  • 這些是自補碼。
  • 這些使用偏差表示。
  • 程式碼 0000 和 1111 不用於任何數字,這對記憶體組織是一個優勢,因為這些程式碼可能會導致傳輸線路出現故障。
  • 它沒有限制,並且大大簡化了算術運算。
  • 它在算術運算中尤其重要,因為它克服了使用 8421 BCD 碼相加兩個十進位制數字(其和超過 9)時遇到的缺點。

更新於:2023 年 10 月 31 日

64K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.