ASCII與BCD的理解,主要講解BCD編碼

2021-07-24 06:59:50 字數 1374 閱讀 8288

bcd

即bcd**。binary-coded decimal‎,簡稱bcd,稱bcd碼或二-十進位制**,亦稱二進碼十進數。是一種二進位制的數字編碼形式,用二進位制編碼的十進位制**。這種編碼形式利用了四個位元來儲存乙個十進位制的數碼,使二進位制和十進位制之間的轉換得以快捷的進行。這種編碼技巧,最常用於會計系統的設計裡,因為會計制度經常需要對很長的數字串作準確的計算。相對於一般的浮點式記數法,採用bcd碼,既可儲存數值的精確度,又可免卻使電腦作浮點運算時所耗費的時間。此外,對於其他需要高精確度的計算,bcd編碼亦很常用。

簡介編輯

由於十進位制數共有0、1、2、……、9十個數碼,因此,至少需要4位二進位製碼來表示1位十進位制數。在使用bcd編碼時一定要注意其有效的編碼僅十個,即:0000~1001.四位二進位制數的其餘六個編碼1010,1011,1100,1101,1110,1111不是有效編碼。常見bcd編碼有8421bcd碼,2421bcd碼,餘3碼,對應編碼表如下

通常開發使用8421,8421對於新手能一看就懂

ascii(american standard code for information interchange,美國資訊交換標準**)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準iso/iec 646。

請注意,ascii是american standard code for information interchange縮寫,而不是ascⅱ(羅馬數字2),有很多人在這個地方產生誤解。

對於ascii具體的就不說了網上一搜一大坨。

這裡給一張ascii與bcd的轉換圖

關於上述的壓縮bcd與非壓縮bcd碼:

bcd碼是用二進位制的「數」來表示十進位制的「數字」,對於「數」,在計算機中總是用一定位數的「二進位制數字」來表示的。 因此,對於乙個「十進位制數字」(例如「6」),我們可以用乙個「8位二進位制數」來表示(即0000 0110 b),這稱為非壓縮的bcd碼;當然,我們也可以用乙個「4位的二進位制數」來表示它(即 0110 b),這稱為壓縮的bcd碼。所謂壓縮就是一位少了4個0

於是,十進位制數「36」用非壓縮的bcd碼表示為「00000011 00000110」而用壓縮的bcd碼表示為「0011 0110」。其中00000011和0011代表3,00000110和0110代表6,以此類推

ASCII與BCD編碼轉換

package com.handpay.core.common.util public class bcdascii 從bcd編碼轉換成ascii編碼.param bcdbuf,bcd編碼緩衝區 param bcdoffset,bcd編碼緩衝區起始偏移 param asciibuf,ascii編碼緩...

iOS 中的編碼方式詳解(主要講解Unicode)

完全支援 unicode,還替你幹了大部分的重活兒,處理各種語言 各種書寫系統的文字仍然是乙個非常複雜的事情。作為乙個程式設計師,有些事情你應該知道。這篇文章裡,我會先向你簡單地講一下 unicode 這個標準,然後解釋nsstring是怎麼處理它的,再討論一下你可能會遇到的一些常見問題。計算機沒法...

UNICODE與ASCII的區別

最近的專案涉及到了國際化的問題,由於之前並沒有接觸到unicode編碼,因此,在專案期間,收集了一些關於ascii和unicode的資料。1.ascii的特點 ascii 是用來表示英文本元的一種編碼規範。每個ascii字元占用1 個位元組,因此,ascii 編碼可以表示的最大字元數是255 00h...