BCD碼 8421碼 餘三碼 格雷碼

2021-07-23 15:32:55 字數 1953 閱讀 3315

用四位二進位制**來表示一位十進位制數,稱為二--十進位制編碼,簡稱bcd(binary coded decimal)碼。根據**的每一位是否有權值bcd碼可分為有權碼和無權碼兩類,應用最多的是8421bcd碼,無權碼用得較多的是餘三碼和格雷碼,我們通常所說的bcd碼指的是8421bcd碼。這些編碼跟十進位制數對應的關係如下:

十進位制數                      8421bcd碼                            餘3碼                      格雷碼

0                                0000                                      0011                        0000

1                                0001                                      0100                        0001

2                                0010                                      0101                        0011

3                                0011                                      0110                        0010

4                                0100                                      0111                        0110

5                                0101                                      1000                        1110

6                                0110                                      1001                        1010

7                                0111                                      1010                        1000

8                                1000                                      1011                        1100

9                                1001                                      1100                        0100

8421bcd碼中的「8421」表示從高到低各位二進位制位對應的權值分別為8、4、2、1,將各二進位制位與權值相乘,並將乘積相加就得相應的十進位制數。例如,8421bcd碼「0111」,0×8+1×4+1×2+1×1=7d,其中d表示十進位制(decimal)數。

值得特別注意的是,8421bcd碼只有0000~1001共十個,而1010、1011...等等不是8421bcd碼!!

餘三碼是在8421bcd碼的基礎上,把每個數的**加上0011(對應十進位制數3)後得到的。格雷碼的編碼規則是相鄰的兩**之間只有一位二進位制位不同。不管是8421bcd碼還是餘三碼還是格雷碼,總是4個二進位制位對應乙個十進位制數,如十進位制數18對應的8421bcd碼就是0001  1000。

壓縮的bcd碼用4個二進位制位來表示十進位制數,上面提到的就是壓縮的bcd碼。而非壓縮bcd碼用乙個位元組(八個二進位制位)表示一位十進位制數,高4位總是0000,低4位的0000~1001表示相應的十進位制數。例如,十進位制數87d,採用非壓縮8421bcd碼表示為二進位制數是00001000 00000111b。這種非壓縮bcd碼主要用於非數值計算的應用領域中。

BCD碼 8421碼,餘3碼,2421碼

在計算機內部,數值資料的表示方法有以下兩大類 直接用二進位制數表示。無符號數用來表示無符號整數 如位址等資訊 定點數用來表示整數 浮點數用來表示實數 二進位制編碼的十進位制數。一般採用bcd碼來表示,用來表示整數。bcd碼通常採用4位二進位制數表示一位十進位制數中的0 9這10個數碼。這種編碼方法使...

關於BCD和格雷碼

1 原來關於keil的debug的printf用法,其實並沒有像當初寫這篇博文那樣麻煩。只是需要ti 1 再加上 stdio.h就行了。2 unsigned long最大可達42億,10位。bcd碼,感覺以前沒怎麼在意,其實用的也最多了。實際上就是4位二進位制數構成0 9的1位十進位制數,取值範圍0...

生成格雷碼

程式設計題 生成格雷碼 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 思想 用遞迴法實現,把求n位格雷碼分解為求n 1...