- コンピュータのデータ表現
コンピュータは扱う全ての情報を2進数として処理します
※すべての情報は2進数で表現できることを
クロード・シャノンが提唱(情報理論)
・データ表現の違い
人 |
コンピュータ |
10進数
(0から9) |
2進数
(0と1) |
0と1の表現 |
・電圧の高低
・くぼみの有無
・磁気の向き
など |
※ハードウェアにより異なる |
・2進と10進の対比
10進数 |
0 |
1 |
2 |
3 |
4 |
5 |
2進数 |
0 |
1 |
10 |
11 |
100 |
101 |
|
桁上 |
|
桁上 |
|
・その他の進数
8進数 |
0から7 |
16進数 |
0から9、AからF |
桁数減少=>人が見やすい |
- 基数変換
・2進->10進(整数)
各桁の値と桁の重みを掛けたものの総和
※各桁はある数が何個あるかを表す
10進の25は
10が2個と1が5個
2進の110は
4が1個、2が1個、1が0個
10進で表すと「6」
2進数の重み |
2^4 |
2^3 |
2^2 |
2^1 |
2^0 |
重み(10進表現) |
16 |
8 |
4 |
2 |
1 |
2進の値(上の例) |
0 |
0 |
1 |
1 |
0 |
(2^2×1+2^1×1+2^0×0)=6
※^は何乗かを表すために利用しています
^0(0乗)は基数が違っても常に1です
|
・2進->10進(小数)
2進小数「0.0110」の場合
2進小数の重み |
2^-1 |
2^-2 |
2^-3 |
2^-4 |
.(小数点) |
0 |
1 |
1 |
0 |
2進小数「0.011」は
2^-1が0個、2^-2が1個、2^-3が1個
10進で表すと0.25+0.125=「0.375」
|
・10進->2進(整数)
- 10進を2で割る(商が0になるまで)
- 余りを下から上へ順に並べる
例:10進「6」の2進表現
6÷2=3余り0
3÷2=1余り1
1÷2=0余り1 |
↑ |
110 |
|
・10進->2進(小数)
- 10進に2を掛ける(小数部が0になるまで)
- 整数部を上から下へ順に並べる
例:10進「0.375」の2進表現
0.375×2=0.75整数部0
0.75×2=1.5 整数部1
0.5×2=1.0 整数部1 |
↓ |
0.011 |
|
・無限小数
- 循環小数、円周率などすべてを表現できない
- 一部の10進小数は2進数で表せない
例:
10進数「0.1」は2進数「0.0001100110011・・」
となり循環小数となる
|
・2進、8進、16進の関係
8進数は2進数の「3桁」
16進数は2進数の「4桁」に対応
10進数「45.75」を各進数で表現した場合
8進 |
|
5 |
5 |
. |
6 |
|
2進 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
. |
1 |
1 |
0 |
0 |
16進 |
2 |
D |
. |
C |
|
- データを表す単位
- bit(ビット)
2進数1桁を表す
- B(バイト)
2進数8桁を表す(8bit:256通りの表現)
- 補助単位
- 大きな表現
キロ
K |
メガ
M |
ギガ
G |
テラ
T |
10^3 |
10^6 |
10^9 |
10^12 |
- 小さな表現
ミリ
m |
マイクロ
μ |
ナノ
n |
ピコ
P |
10^-3 |
10^-6 |
10^-9 |
10^-12 |
|