BCD(文字エンコーディング)

BCD交換コード
分類6ビット英数字の基本ラテン文字エンコーディング
後継EBCDIC

BCD2進化10進数)は、英数字BCD英数字BCDBCD交換コード[ 1 ]、またはBCDIC [ 1 ]とも呼ばれ、数字、大文字のラテン文字、および一部の特殊文字と制御文字を6ビットの文字コードとして表現する一連のコードです

ASCIIなどの後発のエンコードとは異なり、BCDコードは標準化されていませんでした。異なるコンピュータメーカー、さらには同じメーカーでも異なる製品ラインごとに独自のバリエーションが存在することが多く、固有の文字が含まれている場合もありました。FIELDATA [ 1 ]のバリエーションやTranscodeなど、マッピングが全く異なる他の6ビットエンコードは、誤ってBCDと呼ばれることがあります

BCD の多くのバリエーションは、文字「0」から「9」を対応するバイナリ値としてエンコードします。

歴史

技術的には、2進化10進数とは、10進数の各桁が固定数のビット(通常は4ビット)で表される10進数の符号化を指します

1928年のIBMカードの導入に伴い、IBMは英数字情報を表現できるコード[ a ]を開発し、 [ 2 ]後に他のメーカーにも採用されました。このコードは0~9の数字を1つのパンチで表現し、大文字と特殊文字には複数のパンチを使用します。[ 3 ]文字は2つのパンチ(ゾーン[12,11,0] + 数字[1~9])を持ち、ほとんどの特殊文字は2つまたは3つのパンチ(ゾーン[12,11,0、またはなし] + 数字[2~7] + 8)を持ちます。

BCDコードは、パンチカードコードを6ビットの2進コードに適合させたもので、数字列(9行とパンチされていない行)を下位4ビットに、ゾーン列(3行とパンチされていない行)を上位2ビットにエンコードする。[ 4 ]数字ゼロ(0行目の単一パンチ)は通常、何らかの方法で特別に処理され、数字コードは2~7の範囲の数字と8行目のパンチを組み合わせることで10~15の値に拡張された。IBMは、IBM 1620IBM 1400シリーズ、IBM 700/7000シリーズの非10進アーキテクチャー製品など、初期のIBMコンピューターのほとんどで使用されていたBCD英数字のバリエーションに、 2進化10進数およびBCDという用語を適用した。

BCDを使用していたベンダーとしては、バローズ[ 5 ]ブルCDC[ 6 ] IBMゼネラルエレクトリック(コンピュータ部門は1969年にハネウェルに買収された)、NCRシーメンススペリー-ユニバックなどがある

IBM は、1964 年にSystem/360製品ラインを導入し、BCDIC に基づいた8 ビットの拡張 2 進化 10 進コード(EBCDIC) を発表しました。

特殊文字

レコードマーク文字(‡と表記)はレコードの終了を示すために使用される文字です。[ 7 ]この文字のBCDコードは、一部のBCDバリアントでは328です。最も近いUnicodeの等価文字はU+29E7⧧ THERMODYNAMICですが、多くのフォントには存在しないため、代わりにU+2021DOUBLE DAGGERがよく使用されます。機能的には、これはEBCDIC IRS文字(ASCII RS)のX'1E' に対応します

グループマーク文字と表記)は、関連するフィールドのグループの開始または終了を示す文字です。[ 8 ]この文字のBCDコードは、一部のBCDバリアントでは77 8です。グループマークは2015年にUnicode標準化のために提案され、[ 9 ] U+2BD2GROUP MARKの値に割り当てられました。機能的には、EBCDIC IGS文字(ASCII GS)のX'1D'に対応します。現在、Unicode 10.0ではこの位置にありますが、SymbolaフォントとUnifontフォントのみがこれをサポートしています。

一方、ワードマークはBCD文字ではありません。IBM 1401などの可変長ワードを持つコンピュータにおいて、ワードの終わりを示すために使用されるフラグビットです。

BCDコードのバリエーション

6ビットBCDコードには多くの異なるバージョンがあります。主な違いは3つあります

  1. ゾーンパンチから上位ビットへのマッピング。すべてのコードにおいて、ゾーンパンチなしはビットパターン00に変換されますが、一部のコードではアルファベット順を維持しながら12-11-0の順序でゾーンパンチをエンコードしますが、他のコードでは0-11-12の順序でエンコードするため、アルファベットが部分的に反転します。
  2. 数字0の扱い。パンチされた形式からの直接的な変換では、1~9の数字の前に空白を配置し、行頭に「S」を含む0をエンコードします。すべてのコードには特別な処理があり、数字0をすべてゼロのバイナリコードに変換するか(空白を別の場所に移動する)、バイナリコード001010(10進数で10)に変換して8+2のパンチを別の場所に移動するかのいずれかです。
  3. 特殊文字の割り当て。基本英数字セット以外のコードに割り当てられる文字は、同じコンピュータモデル内であっても大きく異なっていました。例えば、一部のコンピュータ[ b ]では、パーセント記号と菱形(U+2311SQUARE LOZENGE )が、他の[ c ]エンコーディングの左括弧と右括弧と同じコードに割り当てられていました。

「スペイン語圏の国」では、文字「Ñ」は元のシステムには存在しなかったため、 Bull、NCR、Control Data などのほとんどのメーカーは「@」を選択しましたが、データベースを 7 ビット ASCII コードに統合する際に不整合が発生しました。そのコーディング システムでは「/」文字が選択されたため、同じ文字に対して 2 つの異なるコードが生成されました。

BCDコードの例

以下の表は、BCD文字の数値を16進数(基数16)表記で示しています。これは、4ビットの2進化10進数に2ビットを加えた構造を最も明確に反映しています。例えば、3x行x1列にある「A」のコードは、16進数では31、2進数では「11 0001」です。

テープ形式

48文字のBCDコード

BCDICの最初のバージョンは48文字でした。これは、カードパンチパターンとプリンタの文字セットに基づいていたためであり、どちらも2の累乗の文字数を推奨していませんでした

IBM 48文字BCDICコード[ 1 ] : 68
0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890#@
1倍 /ST西
2倍 -JKLMNOPQR$*
3倍 ABCDEFGH

これは40文字のパンチカードコードに基づいています。元の37文字(10桁の数字、26文字、空白)に加えて、1932年頃に追加された3つの商業的に重要な文字があります。 [ 1 ] :67クレジット残高とハイフンでつながれた名前の印刷に使用されるハイフンとマイナス、多くの名前と住所にも使用されるアンパサンド( Procter & Gamble 、Mr. & Mrs. Smith)、および小切手の印刷時に未使用のフィールドをオーバープリントするために使用されるアスタリスクです

IBM 1401 BCDコード

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890#@
1倍 /ST西¢"
2倍 -JKLMNOPQR"$*);;
3倍 ABCDEFGH<<

コードページ353

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890#@
1倍 BCDIC-Aコードページはコードページ353 ( CP353とも呼ばれる)に割り当てられました。このコードページの一部の文字はUnicodeには存在しません。(「#」の重複はIBM自身のドキュメントに記載されており、誤りではありません。 [ 11 ] )/ST西¢γ\
2倍 -JKLMNOPQR"#*];;
3倍 ABCDEFGH[<<

[

0x1A はレコードマークです。0x3F はグループマークです。

コードページ354

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890BCDIC-Bコードページは、コードページ354 ( CP354とも呼ばれます)として割り当てられました。 [ 12 ]このコードページの文字の一部はUnicodeには含まれていません
1倍 BCDIC-Aコードページはコードページ353 ( CP353とも呼ばれる)に割り当てられました。このコードページの一部の文字はUnicodeには存在しません。(「#」の重複はIBM自身のドキュメントに記載されており、誤りではありません。 [ 11 ] )/ST西¢γ\
2倍 -JKLMNOPQR"#*];;
3倍 ABCDEFGH)[<<

[

+

PTTC/BCDコードページ

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890#
1倍 @/ST西¢
2倍 -JKLMNOPQR<$
3倍 ABCDEFGH)

PTTC/BCD H オプションは、コード ページ 357、またはCP357として割り当てられました。

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x スペース1234567890
1倍 /ST西¢
2倍 -JKLMNOPQR"$
3倍 ABCDEFGH

I

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x space1234567890'
1x !/STUVWXYZ,
2x -JKLMNOPQR<;
3x =ABCDEFGHI.

<

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x space1234567890#
1x @/STUVWXYZ,
2x -JKLMNOPQR$
3x ABCDEFGHI.

#

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x space1234567890#
1x @/STUVWXYZ,
2x -JKLMNOPQR$
3x &ABCDEFGHI.

@

PTTC/BCDデュオケースオプションは、コードページ360、またはCP360として割り当てられまし

IBM 704 ストレージスタイル

IBM 704 BCDコード
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x 0123456789#@
1x &ABCDEFGHI+0.
2x -JKLMNOPQR以下の表は0$*
3x space/STUVWXYZ,

+0*0%

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x *123456789+-
1x +ABCDEFGHI.
2x -JKLMNOPQR$*
3x 0/STUVWXYZ,%

パンチカードの 12 行目または 11 行目にオーバーパンチされた符号付きの数字 0 に対応する、めったに使用されない文字でした。+-*

次の表は

IBM 716 プリンタ文字セット G

これは、文字、 、 が重複しているため、45 文字 (プリンタによって特別に処理される空白は除く) のレパートリーです。
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x *123456789=-
1x +ABCDEFGHI.)
2x -JKLMNOPQR$*
3x 0/STUVWXYZ,(

A similar code was used for the IBM 709, 7090 and 7094 successors,[15] but with some of the special characters reassigned:

IBM 7090/7094 character set
x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x 0123456789="
1x &ABCDEFGHI+0.)
2x -JKLMNOPQR0$*
3x space/STUVWXYZ±,(

GBCD code

Below is the table of GE/Honeywell's GBCD code, a variant of BCD.[16]

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x 0123456789[#@:>?
1x spaceABCDEFGHI&.](<\
2x ^JKLMNOPQR-$*);'
3x +/STUVWXYZ_,%="!

Burroughs B5500 BCD code

次の表は、 Burroughs B5500コンピュータのコード割り当てを示しています。これはBIC(Burroughs Interchange Code)と呼ばれることもあります。[ 17 ]

0123456倍7倍8倍9倍A倍B倍xCxDxExF
0x 0123456789#@
1倍 ABCDEFGH[<
2倍 ×JKLMNOPQR$*-);
3倍 スペース/ST西]"

参照

注記

  1. ^実際には複数のカードコードがあります。例えば、1964年までにIBM 026には、わずかに異なる文字セットを持つ
  2. ^例: IBM 702 IBM 705
  3. ^例: IBM 701 IBM 704
  4. ^たとえば 7090 のインターフェースは異なりますが、ソフトウェアは依然としてマッピングを行う必要があります。

参考文献

  1. ^ a b c d e Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3 LCCN  77-90165 2016年5月26日時点のオリジナルよりアーカイブ(PDF)2017年4月22日閲覧[1]
  2. ^エマーソン・W・ピュー、ラース・ハイデ。「STARS:パンチカード機器」 IEEEグローバルヒストリーネットワーク。2012年5月11日時点のオリジナルよりアーカイブ。2012年6月9日閲覧
  3. ^エマーソン・W. ピュー(1995年)『IBMの構築:産業とその技術の形成MITプレス、pp.  50-51 . ISBN 978-0-262-16147-3
  4. ^ジョーンズ、ダグラス・W. 「パンチカードコード」 。 2014年1月1閲覧
  5. ^ Burroughs B5500 情報処理システム: リファレンスマニュアル(PDF) . Burroughs Corporation . 1964. 2020年7月29日時点のオリジナル(PDF)からアーカイブ。 2012年6月8日閲覧
  6. ^コントロールデータコーポレーション(1965).コード/コントロールデータ6600コンピュータシステム(PDF) .
  7. ^ 「レコードマーク」 .百科事典. PC Magazine . 2016年4月9日閲覧。
  8. ^ 「グループマーク」 . Encyclopedia.com . 2016年4月9日閲覧。
  9. ^ Shirriff, Ken. 「グループマーク記号の追加提案」(PDF) . unicode.org . 2016年4月9日閲覧
  10. ^ IBM 1401 データ処理システム: リファレンス・マニュアル(PDF) . IBM . 1962年4月. p. 170. A24-1403-5.オリジナル(PDF)から2012年3月14日にアーカイブ。
  11. ^ 「Systems i Software Globalization cp00353z」(PDF)www-03.ibm.com2013年1月21日時点のオリジナル(PDF)からアーカイブ。 2022年6月30日閲覧
  12. ^ https://ccsids.net/ccsids.html#ccsid-354 .{{cite web}}:欠落または空|title=(ヘルプ)
  13. ^ a b c IBM 704電子データ処理機械操作マニュアル(PDF) . IBM . 1955年. pp. 35, 58. フォーム24-6661-2 . 2017年4月22日閲覧。
  14. ^ 「IBM 704用Fortran自動コーディングシステム」(PDF) IBM 1956年10月15日 p. 49。2015年9月24日時点のオリジナル(PDF)からアーカイブ。 2015年9月15日閲覧
  15. ^ Harper, Jack (2001年8月21日). 「IBM 7090/94の文字表現」 . 2017年3月16日時点のオリジナルよりアーカイブ。 2017年4月22日閲覧
  16. ^ 「セクション:BULLコンピュータの文字表」(PDF) 。 2011年7月8日時点のオリジナル(PDF)からアーカイブ。 2010年11月15日閲覧
  17. ^ Burroughs B 5500 情報処理システム拡張アルゴリズムリファレンスマニュアル(PDF) 1966年、p. B-1。

さらに詳しい情報