BCD(バイナリ符号化十進数)は、英数字BCD、アルファメリックBCD、BCD交換コード[ 1 ]またはBCDIC [ 1 ]とも呼ばれ、数字、大文字のラテン文字、およびいくつかの特殊文字と制御文字を6ビットの文字コードとして表現するファミリーです。
ASCIIなどの後のエンコーディングとは異なり、BCDコードは標準化されていませんでした。異なるコンピュータメーカー、さらには同じメーカーの異なる製品ラインでさえ、独自のバリアントを持つことがよくあり、時には固有の文字が含まれていました。FIELDATA [ 1 ]のいくつかのバリアントやTranscodeなど、完全に異なるマッピングを持つ他の6ビットエンコーディングが、誤ってBCDと呼ばれることがあります。
BCDの多くのバリエーションでは、文字「0」から「9」を対応する2進数値として符号化します。
技術的には、二進化十進数(BCD)とは、各十進数桁が固定数のビット(通常は4ビット)で表現される十進数の符号化方式を指します。
IBMは1928年にIBMカードを導入し、英数字情報を表現できるコード[ a ]を作成しました[ 2 ]。このコードは後に他のメーカーにも採用されました。このコードでは、数字0~9を1つのパンチで表現し、大文字や特殊文字には複数のパンチを使用します[ 3 ] 。文字は2つのパンチ(ゾーン[12,11,0] + 数字[1~9])を持ち、ほとんどの特殊文字は2つまたは3つのパンチ(ゾーン[12,11,0、またはなし] + 数字[2~7] + 8)を持ちます。
BCD コードは、パンチ カード コードを 6 ビットのバイナリ コードに適合させたもので、数字行 (9 行と未パンチ行) を下位 4 ビットに、ゾーン行 (3 行と未パンチ行) を上位 2 ビットにエンコードします。[ 4 ]数字 0 (0 行の 1 つのパンチ) は通常何らかの方法で特別に処理され、数字コードは 2 ~ 7 の範囲の数字と 8 行のパンチを組み合わせることで 10 ~ 15 の値に拡張されました。IBMは、IBM 1620、IBM 1400 シリーズ、および非Decimal Architecture のIBM 700/7000 シリーズのほとんどの初期の IBM コンピュータで使用されていたBCDアルファメリックのバリエーションに、バイナリ コード 10 進数およびBCDという用語を適用しました。
BCDを使用していたベンダーには、Burroughs、[ 5 ] Bull、CDC、[ 6 ] IBM、General Electric(コンピュータ部門は1969年にHoneywellに買収された)、NCR、Siemens、Sperry - UNIVACなどがあった。
IBMは1964年、 System/360シリーズの発表と同時に、BCDICをベースとした8ビット拡張二進化十進数交換コード(EBCDIC)を発表した。
レコードマークまたはレコードマーク文字(‡ で表される)は、レコードの終わりを示すために使用される文字です。[ 7 ]この文字の BCD コードは、一部の BCD バリアントでは 32 8です。最も近い Unicode 相当文字はU+29E7 ⧧ THERMODYNAMICですが、これは多くのフォントには含まれていないため、代わりにU+2021 ‡ DOUBLE DAGGERがよく使用されます。機能的には、これは EBCDIC IRS文字 (ASCII RS )、X'1E' に対応します。
グループマークまたはグループマーク文字(で表される)は、関連するフィールドのグループの開始または終了を示すために使用される文字です。[ 8 ]この文字の BCD コードは、一部の BCD バリアントでは 77 8です。グループマークは 2015 年に Unicode 標準化のために提案され、[ 9 ]値U+2BD2 ⯒ GROUP MARK が割り当てられました。機能的には、これは EBCDIC IGS文字 (ASCII GS )、X'1D' に対応します。現在、Unicode 10.0 のこの位置にありますが、Symbola および Unifont フォントのみがサポートしています。
一方、ワードマークはBCD文字ではありません。むしろ、 IBM 1401などの可変ワード長コンピュータでワードの終わりを示すために使用されるフラグビットです。
6ビットBCDコードには様々なバージョンが存在する。主な違いは以下の3つである。
スペイン語圏の国々では、元のシステムには文字「Ñ」が存在しなかったため、Bull、NCR、Control Dataなどのほとんどのメーカーは「@」を選択しましたが、データベースを7ビットASCIIコードに統合する際に矛盾が生じました。このコーディングシステムでは「/」文字が選択されていたため、同じ文字に対して2つの異なるコードが生成される結果となりました。
以下の表は、BCD文字の数値を16進数表記で示したものです。これは、4ビットの2進化10進数に2ビットを追加した構造を最も明確に反映しているためです。例えば、3x行目x1列目の「A」のコードは、16進数で31、2進数で「11 0001」となります。
BCDICの初期バージョンは48文字だった。これは、カードのパンチパターンとプリンターの文字セットに基づいており、どちらも2のべき乗の文字数を持つことを推奨していなかったためである。
これは40文字のパンチカードコードに基づいていました。元の37文字(10桁の数字、26文字のアルファベット、および空白)に加えて、1932年頃に商業的に重要な3文字が追加されました。[ 1 ]: 67ハイフンマイナスはクレジット残高やハイフン付きの名前の印刷に使用され、アンパサンドは多くの名前や住所(プロクター・アンド・ギャンブル、スミス氏とスミス夫人)にも使用され、アスタリスクは小切手を印刷する際に未使用のフィールドに上書き印刷するために使用されました。
IBM 1401 はIBM 704 のストレージ表現に従うのではなく、テープ表現 (48 文字の BCD から派生) に従い、空白にはすべてゼロのコード、数字のゼロにはコード 10 (0x0A) を使用しました。ドキュメント作成のために、可能なすべての値に対して文字形式が定義されていましたが[ 10 ]、63 個の空白以外の文字のうち印刷可能なのは 48 個のみで、他のコード値 (下の表で網掛けされている) が実際にどのように表示されるかにはかなりのばらつきがありました。他の文字でさえ、IBM 1403プリンタで使用可能なさまざまな印刷チェーンによって異なっていました。
BCDIC-Aコードページはコードページ353 ( CP353とも呼ばれる)として割り当てられました。このコードページに含まれる文字の中にはUnicodeに含まれていないものがあります。(「#」の重複はIBMの公式ドキュメントにも記載されており、ここでは間違いではありません。[ 11 ])
0x1Aはレコードマーク、0x3Fはグループマークです。
BCDIC-Bコードページはコードページ354 ( CP354とも呼ばれる)として割り当てられました。[ 12 ]このコードページの一部の文字はUnicodeに含まれていません。
0x1Aはレコードマーク、0x3Fはグループマークです。
PTTC/BCDには5つのオプションがありました。コードページは5つあり、以下に示します。PTTC/BCD標準オプションはコードページ355、つまりCP355として割り当てられました。
PTTC/BCD Hオプションはコードページ357、またはCP357として割り当てられました。
PTTC/BCD 対応オプションは、コードページ 358、またはCP358として割り当てられました。
PTTC/BCD モノケースオプションは、コードページ 359、またはCP359として割り当てられました。
PTTC/BCDデュオケースオプションは、コードページ360、またはCP360として割り当てられました。
IBM 704は、内部的に通常のアルファベット順照合順序(0が1より前、AがZより前)を可能にするためにBCDICコードの順序を変更した。磁気テープの読み書き時には、この内部形式と以前のBCDICとの間で自動的に変換することができた。[ 13 ]: 35
以下の表は、 IBM 704コンピュータのコード割り当てを示しています。未割り当てのコード位置は空白で表示されます。[ 13 ] : 35
(+0と-0は、パンチカードの慣例に従い、12行目または11行目にオーバーパンチ記号付きの数字0を表す文字として、めったに使用されなかった。)
次の表は、IBM 704 コンピュータから 7094 まで使用されたタイプ 716 プリンタのコード割り当てを示しています。 [ 13 ] : 58 704 インターフェース[ d ]は、仮想パンチカード行を一度に 2 ワード (72 ビット) ずつこのプリンタに送信したため、6 ビット BCD 文字からのマッピングはソフトウェアによって行われ、プリンタには組み込まれていませんでした。
これは45文字のレパートリーです(空白文字はプリンターで特別に処理されるため、空白文字は含まれません)。文字+、-およびは*重複しています。
多少の違いはあった。IBM 704 Fortran では特殊文字のセットが異なっていた(重複したマイナス記号とアスタリスク、ピリオド、コンマ、ドル記号のみを保持していた)。[ 14 ]
IBM 709、7090、7094の後継機種でも同様のコードが使用されたが、[ 15 ]一部の特殊文字は再割り当てされた。
以下は、BCD の派生形である GE/Honeywell の GBCD コードの表です。[ 16 ]
次の表は、 Burroughs B5500コンピュータのコード割り当てを示しています。これは、BIC (Burroughs Interchange Code) と呼ばれることもあります。[ 17 ]
{{cite web}}:欠落または空欄|title=(ヘルプ)