0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Com/Sys データの表現形式

0
Posted at

文字データ(文字コード)

  • 文字に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):小数点以下の数値を正規化して表現
・大きな数や小さな数を決められたビット数で取り扱える

数値データ表現.png

問題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

となる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?