数の表現

[教科書2.2.2]

数の情報表現の使い分けは以下のようになっている。

アンケート

自然数の表現

8進数16進数をコンピュータの内部のデータの表現として使うこともある。

10進法 2進法 8進法 16進法
0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

電卓を使って進数の関係を調べたり、計算してみよう。 「アプリケーション」→「電卓」で電卓を起動してから、メニューで「表示」→「プログラマ」を選ぶと16進電卓に変身する。 Hex, Oct, Decで16進、8進、10進の表示を変更できる。

2進法の101010は10進法ではいくつか?

10進法の108は16進法ではいくつか?

無人のはずのビルを見たら以下のように明かりがついていた。

■□■■■
■■□■□
■□□■■
□■■■■
■■■■■
■□■■□
■□□■□
■■■■■
□■□■■
□■■□■
■■■■□
□■■■■
□■■■■
■■□■□
■■□■■
ここから隠れたメッセージを読み取ることはできるか?
なお、アルファベットに1から順に番号をつけると次のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
a b c d e f g h i j k l m n o p q r s t u v w x y z

負を含む整数の表現

負の整数を表す方法には2種類ある。 図による説明

10進法 2進法(2の補数表現)
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
-8 1000
-7 1001
-6 1010
-5 1011
-4 1100
-3 1101
-2 1110
-1 1111

xの2の補数の求め方(nビットで)

  1. の各ビットの0と1を逆転させる。これを1の補数という。xの1の補数にに加えると各ビットが1になるのでとなる。
  2. 1の補数に1を加える。これにを加えるとになるので2の補数である。
例: 3の2の補数を求める(n=4ビットで)
  1. 3を2進数で表すと0011
  2. 0と1を逆転させると1100
  3. 1100に1を足すと1101
1101と0011を足すと10000なので、1101は0011の2の補数となっている。

注意: nが小さいと正しく計算できない。例えば、上の計算でn=2ビットだと、

  1. 3を2進数で表すと11
  2. 0と1を逆転させると00
  3. 00に1を足すと01
で、01は1なので何か変。 n=2ビットの場合、2の補数表現で表現できる範囲は以下のとおりなので、そもそも3は表現できず、その補数も表現できる範囲外である。
0 00
1 01
-2 10
-1 11

-23を2の補数を16進で表現するとどうなるか?(16ビットで表すとする)

小数点のある数の表現

小数点のある数の表現には2種類ある。 Excelの数値がどの程度の精度か調べてみよ。
  1. Excelを起動する。
  2. A1(一番左上のセル)に1と入力する。
  3. A2(A1の下のセル)に「=A1/10」と入力する。
  4. A2の右下の角をA20ぐらいまでドラッグする。
  5. B1に「=1+A1」と入力する。
  6. B1の右下の角をB20ぐらいまでドラッグする。
  7. B1からB20が選択された状態で、「書式」→「セル」→「表示形式」→「数値」→小数点以下の桁数を30に→「OK」
  8. 1に足された数がどこで消えるか見てみよ。
この実験から、Excelでは数値がどのように表現されていると推測されるか?

Windowsのファイルの管理方法の一つであるFAT32では1ハードディスクで2テラバイトまでしか管理できない。 ハードディスクのデータは何バイトかをセクタと呼ばれるひとまとまりにして管理しているが、FAT32はセクタの番号を32ビットで表しているからである。 この場合セクタは何バイトか?

2009年11月10日の財務省の発表によると日本の債務残高は864兆5226億円である。 これを2進法で表現するには何ビット必要か? 2の補数表現の場合は何ビットか? 電卓で確認してみよ。

アンケート

yamaguch@mail.ecc.u-tokyo.ac.jp
Copyright 2011 Kazunori Yamaguchi 山口和紀@東京大学総合文化研究科