| 分類 | 6ビット 英数字 基本ラテン文字エンコーディング |
|---|---|
| 後継者 | EBCDIC |
BCD(2進化10進数)は、英数字BCD、英数字BCD、BCD交換コード、[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ビットのバイナリコードに適合させたもので、数字列(9行+未パンチ列)を下位4ビットに、ゾーン列(3行+未パンチ列)を上位2ビットにエンコードしている。[4]数字ゼロ(0行目の単一パンチ)は通常、何らかの方法で特別に処理され、数字コードは2~7の範囲の数字と8行目のパンチを組み合わせることで値10~15に拡張された。IBMは、 IBM 1620、IBM 1400シリーズ、およびIBM 700/7000シリーズの非10進アーキテクチャー・メンバーを含む、ほとんどの初期のIBMコンピューターで使用されていたBCD英数字のバリエーションに、2進化10進数およびBCDという用語を適用した。
BCDを使用していたベンダーとしては、バロウズ[5]、 ブル[6] 、CDC、[7] IBM、ゼネラル・エレクトリック(コンピュータ部門は1969年にハネウェルに買収された)、 NCR、シーメンス、スペリー・ユニバックなどがある。
IBM は、1964 年にSystem/360製品ラインを導入し、BCDIC に基づいた8 ビットの拡張 2 進化 10 進コード(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などの可変ワード長コンピュータでワードの終わりを示すために使用されるフラグ ビットです。
BCDコードのバリエーション
6 ビット BCD コードにはさまざまなバージョンがあります。主な違いは 3 つのカテゴリに分かれます。
- ゾーン パンチから上位ビットへのマッピング。すべてのコードはゾーン パンチを 00 のビット パターンに変換しませんが、一部のコードはゾーン パンチを 12-11-0 の順序でエンコードしてアルファベット順を維持しますが、他のコードは 0-11-12 の順序を使用して部分的に逆のアルファベットになります。
- 数字 0 の処理。パンチされた形式からの直接的な変換では、空白を数字 1 ~ 9 の前に置き、行の先頭に 'S' を含む 0 をエンコードします。すべてのコードには、数字 0 をすべてゼロのバイナリ コードに変換する (そして空白を他の場所に移動する)、またはバイナリ コード 001010 (10 進数の 10) を与えて 8+2 パンチを他の場所に移動する、という特殊なケースの処理があります。
- 特殊文字の割り当て。基本的な英数字セット以外のコードに割り当てられた文字は、1 つのコンピュータ モデル内であっても大きく異なります。たとえば、一部のコンピュータ[b]では、パーセント記号と菱形 ( U+2311 ⌑ SQUARE 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 の累乗の文字数を持つことを推奨していませんでした。
これは40文字のパンチカードコードに基づいており、元々の37文字(10桁、26文字、空白)に、1932年頃に追加された商業的に重要な3文字が加わりました:[1] :67 ハイフンマイナスはクレジット残高やハイフンでつながれた名前の印刷に使用され、アンパサンドも多くの名前や住所(Procter & Gamble、Mr. & Mrs. Smith)にも使用され、アスタリスクは小切手を印刷するときに未使用のフィールドを重ね印刷するために使用されます。
IBM 1401 BCD コード
IBM 1401 は、IBM 704 のストレージ表現ではなく、テープ表現 (48 文字の BCD から派生) に従い、空白にはすべてゼロのコード、数字のゼロにコード 10 (0x0A) を使用しました。文書化の目的で、すべての可能な値に対して文字形式を定義していましたが、[10] 63 の非空白文字のうち 48 文字のみが印刷可能であり、他のコード値 (下の表で網掛けされている) の実際の表現方法にはかなりのばらつきがありました。他の文字でさえ、 IBM 1403プリンターで使用可能なさまざまな印刷チェーン間で異なっていました。
コードページ 353
BCDIC-Aコードページはコードページ353 (CP353とも呼ばれる)として割り当てられました。このコードページの一部の文字はUnicodeにはありません。(「#」の重複はIBM自身のドキュメントに記載されており、間違いではありません。[11])
0x1A はレコード マークです。0x3F はグループ マークです。
コードページ 354
BCDIC-Bコードページはコードページ354 (CP354とも呼ばれる)として割り当てられました。[12]このコードページの文字の一部はUnicodeにはありません。
0x1A はレコード マークです。0x3F はグループ マークです。
PTTC/BCD コード ページ
PTTC/BCD には 5 つのオプションがありました。コード ページも 5 つありました。以下に示します。PTTC/BCD 標準オプションは、コード ページ 355、またはCP355として割り当てられました。
PTTC/BCD H オプションは、コード ページ 357またはCP357として割り当てられました。
PTTC/BCD 対応オプションは、コード ページ 358またはCP358として割り当てられました。
PTTC/BCD モノケース オプションは、コード ページ 359またはCP359として割り当てられました。
PTTC/BCD Duocase オプションは、コード ページ 360、またはCP360として割り当てられました。
IBM 704 ストレージスタイル
IBM 704 BCD コード
IBM 704はBCDICコードを再編成し、内部的には0が1の前、AがZの前という通常のアルファベットの照合順序を可能にした。磁気テープの読み取りと書き込み時に、この内部形式と以前のBCDICとの間で自動的に変換が可能であった。[13] : 35
次の表はIBM 704コンピュータのコード割り当てを示しています。割り当てられていないコード位置は空白で表示されます。[13] : 35
(そしてパンチカードの 12 行目または 11 行目にオーバーパンチされた符号付きの数字 0 に対応する、めったに使用されない文字です。
次の表は、IBM 704コンピュータから7094まで使用されたタイプ716プリンタのコード割り当てを示しています。 [13] : 58 704インターフェース[d]は、このプリンタに仮想パンチカード行を一度に2ワード(72ビット)送信したため、6ビットBCD文字からのマッピングはソフトウェアによって行われ、プリンタには組み込まれていませんでした。
+これは、文字、-、が重複しているため、45 文字 (プリンタによって特別に処理される空白は除く) のレパートリーです*。
Fortran 文字セット
多少のバリエーションがあり、IBM 704 Fortranでは特殊文字のセットが異なっていました(重複したマイナス記号のみが保持されます)。[14]
IBM 709、7090、7094の後継機種でも同様のコードが使用されましたが、[15]一部の特殊文字は再割り当てされました 。
GBCDコード
以下はBCDの変種であるGE/ハネウェルのGBCDコードの表です。[16]
バローズ B5500 BCD コード
次の表は、 Burroughs B5500コンピュータのコード割り当てを示しています。これは、BIC(Burroughs Interchange Code)と呼ばれることもあります。[17]
参照
注記
参考文献
- ^ abcde Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (第 1 版). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. LCCN 77-90165. 2016年5月26日時点のオリジナルよりアーカイブ(PDF) 。 2017年4月22日閲覧。[1]
- ^ Pugh, Emerson W.; Heide, Lars. 「STARS:パンチカード機器」。IEEE Global History Network。2012年5月11日時点のオリジナルよりアーカイブ。 2012年6月9日閲覧。
- ^ Pugh, Emerson W. (1995). IBMの構築:産業とその技術の形成。MIT Press。pp . 50–51。ISBN 978-0-262-16147-3。
- ^ Jones, Douglas W. 「パンチカードコード」。2014年1月1日閲覧。
- ^ Burroughs B5500 情報処理システム: リファレンスマニュアル(PDF)。Burroughs Corporation 。1964年。 2020年7月29日時点のオリジナル(PDF)からアーカイブ。2012年6月8日閲覧。
- ^ Control Data Corporation (1965). Codes/Control Data 6600 コンピュータシステム(PDF) .
- ^ 「レコードマーク」。百科事典。PC Magazine 。 2016年4月9日閲覧。
- ^ 「グループマーク」。Encyclopedia.com 。 2016年4月9日閲覧。
- ^ Shirriff, Ken. 「グループマーク記号追加の提案」(PDF) . unicode.org . 2016年4月9日閲覧。
- ^ IBM 1401 データ処理システム: リファレンス マニュアル(PDF)。IBM。1962年 4 月。p. 170。A24-1403-5。2012 年 3 月 14 日のオリジナル( PDF )からアーカイブ。
- ^ 「Systems i Software Globalization cp00353z」(PDF)。www-03.ibm.com 。 2013 年 1 月 21 日のオリジナル(PDF)からアーカイブ。 2022 年 6 月 30 日閲覧。
- ^ https://ccsids.net/ccsids.html#ccsid-354。
{{cite web}}:欠落または空|title=(ヘルプ) - ^ abc IBM 704 電子データ処理マシン操作マニュアル(PDF) . IBM . 1955. pp. 35, 58. フォーム 24-6661-2 . 2017-04-22に閲覧。
- ^ 「IBM 704 用 Fortran 自動コーディング システム」(PDF)。IBM 。1956年 10 月 15 日。p. 49 。2015 年 9 月 15 日閲覧。
- ^ Harper, Jack (2001-08-21). 「IBM 7090/94 の文字表現」. 2017-04-22閲覧。
- ^ 「セクション: BULL コンピューターの文字テーブル」(PDF)。2011 年 7 月 8 日のオリジナル(PDF)からアーカイブ。2010年 11 月 15 日に閲覧。
- ^ Burroughs B 5500 情報処理システム拡張 Algol リファレンスマニュアル(PDF) 1966 年、p. B-1。
さらに読む
- オペレーティング システム - GCOS 8 オペレーティング システム - プログラマーズ ガイド - Bull NovaScale 9000 シリーズ アセンブリ手順 - GCOS 8 (PDF)。Bull SA CEDOC。2003 年 11 月。67 A2 RJ78 REV00。2015 年 2 月 12 日にオリジナル(PDF)からアーカイブされました。
- Bonten, Jo HM (2009-03-08) [2007]. 「古い 48 ビットおよび 36 ビット コンピューターのデータ形式: 6 ビット文字」. ゲルドロップ、オランダ。2016 年 6 月 16 日にオリジナルからアーカイブ。2016年 6 月 16 日に取得。
