文字データ(文字コード)
- 文字に2進数の並びを割り当てて、どの文字なのかを識別できるようにしたデータ表現体系
文字データの種類
| コード名(用語) | 制定した団体など | 意味 | 特徴 |
|---|---|---|---|
| ASCIIコード | ANSI(米国規格協会)が1962年に制定 | アルファベット、数字、制御文字を表す7ビット、誤り検知用1ビットパリティの計8ビットの文字コード | ・1バイトの文字コード ・日本の文字に関する規定はない ・ISOコードの元になったもの |
| ISOコード | ISO(国際標準化機構) | ASCIIコードをもとに制定した7ビット文字コード | ・1バイトの文字コード ・世界各国で使われている文字コードの基本 |
| JISコード | JISC(日本産業標準調査会)がJIS(日本産業規格)として制定 | ISOコードをもとに日本特有の文字を表せるように制定した文字コードの総称 | ・1バイトの文字コードと2バイトの文字コードがある |
| JIS漢字コード | JISCがJISとして制定 JIS X 0208 |
平仮名や漢字を表現するために、1文字を2バイトで表現する文字コード | ・2バイト文字コード |
| シフトJISコード | JISCがJISとして制定 Shift_JIS |
JIS漢字コードを拡張した文字コード | ・2バイト文字コード ・特殊な切り替えコードなしに1バイト文字と2バイト文字混在を可能にした |
| EBCDIC | IBM社 | 自社の汎用コンピュータ用に開発した8ビット文字コード | ・1バイト文字コード |
| Unicode | Apple社、IBM社、Microsoft社が提唱、ISOが規格化 | PCのデータ交換を円滑にするために万国統一コードとして考案/提唱した2バイトコードをISOが国際標準として規格化 | ・2バイト文字コード ・多国語対応 |
| EUCコード | AT&Tベル研究所 | UNIXの国際化対応のために規定された文字コード | ・1バイトと2バイト混在の文字コード ・漢字対応あり |
数値データ
| 表記 | 名称 | 具体的な表記方法 | 特徴 |
|---|---|---|---|
| 10進数表記 | ゾーン10進数 | ・10進数の1桁を1バイト(2進数8桁)で表記 ・上位4ビットをゾーンビット又は符号ビット ・下位4ビットを2進化10進数(10進数を2進数に) |
・汎用コンピュータで利用 ・ゾーンビット:1111(16進数ではF) ・符号ビット:正 → 1100(C)、負 → 1101(D) |
| (2進化10進数、BCDコードを利用) | パック10進数 | ・1バイト(2進数8桁)で2桁の10進数を表記 ・符号は最下位4ビットで表記 ・バイト単位にならない場合、上位4ビットに0を挿入 |
・ゾーン10進数を短くした |
| 2進数表記 | 固定小数点 | 【符号付絶対値表現】 ・10進数を2進数に基数変換 ・最上位1ビットを符号ビットにする:正 → 0、負 → 1 |
・基数変換が基本 ・符号は専用(先頭)ビットで表記 |
| 固定小数点 | 【補数表現】 ・正の数 → 10進数を2進数に基数変換 ・負の数 → 正の数の補数で表現:正 → 0、負 → 1 |
・減算を加算に置き換えることができる ・表現できる数値の範囲が広くなる |
|
| 浮動小数点 | ・符号部、指数部、仮数部で表記 ・符号部(S):正 → 0、負 → 1 ・指数部(E):2つの記述方式がある 2の補数方式:正の場合 → 2進数、負は2の補数 エクセス64方式:指数に+64似た値を記録 ・仮数部(M):小数点以下の数値を正規化して表現 |
・大きな数や小さな数を決められたビット数で取り扱える |
問題1(BCD)
問題
10進数「58」をBCDで表したものを答えなさい。
答え
0101 1000
解説
BCD(2進化10進数)は、10進数の各桁をそれぞれ4ビットの2進数で表す。
5 → 0101
8 → 1000
したがって、
58 → 0101 1000
となる。
問題2(ゾーン10進数)
問題
正の数「123」をゾーン10進数で表しなさい。ただしゾーン部は1100とする。
答え
1100 0001
1100 0010
1100 0011
解説
ゾーン10進数では1桁を1バイトで表す。
上位4ビット:ゾーン部
下位4ビット:数字
正の数のゾーン部を1100とすると、
1 → 1100 0001
2 → 1100 0010
3 → 1100 0011
となる。
問題3(パック10進数)
問題
正の数「123」をパック10進数で表しなさい。
答え
123C
解説
数字を4ビットずつ格納し、最後の4ビットに符号を入れる。
1 → 0001
2 → 0010
3 → 0011
正の符号 → C(1100)
よって
0001 0010 0011 1100
となり、16進数では
123C
である。
問題4(符号付絶対値表現)
問題
8ビットの符号付絶対値表現で「-5」を表しなさい。
答え
10000101
解説
符号付絶対値表現では、
0:正
1:負
を最上位ビットで表す。
5 → 0000101
先頭に負を表す1を付けるので、
10000101
となる。
問題5(1の補数)
問題
8ビットの1の補数表現で「-5」を表しなさい。
答え
11111010
解説
まず+5を2進数で表す。
00000101
すべてのビットを反転する。
11111010
これが-5の1の補数表現である。
問題6(2の補数)
問題
8ビットの2の補数表現で「-5」を表しなさい。
答え
11111011
解説
まず+5を2進数で表す。
00000101
ビットを反転する。
11111010
さらに1を加える。
11111011
これが-5の2の補数表現である。
問題7(2の補数の範囲)
問題
8ビットの2の補数表現で表せる範囲を答えなさい。
答え
-128 ~ +127
解説
nビットの2の補数表現の範囲は
-2^(n-1) ~ 2^(n-1)-1
で求められる。
8ビットの場合、
-2^7 ~ 2^7-1
となるため、
-128 ~ +127
である。
問題8(2の補数から10進数へ変換)
問題
8ビットの2の補数表現
11111011
を10進数に変換しなさい。
答え
-5
解説
最上位ビットが1なので負の数である。
ビット反転する。
00000100
さらに1を加える。
00000101
これは10進数で5なので、
-5
となる。
問題9(符号付絶対値表現から10進数へ変換)
問題
8ビットの符号付絶対値表現
10000101
を10進数に変換しなさい。
答え
-5
解説
最上位ビットの1は負を表す。
残りのビット
0000101
は10進数の5である。
したがって、
-5
となる。
問題10(BCDから10進数へ変換)
問題
BCD
0011 1001
を10進数に変換しなさい。
答え
39
解説
BCDは4ビットごとに区切って読む。
0011 → 3
1001 → 9
したがって、
39
となる。
