2012年04月20日
情報科学類 コンピュータリテラシ
筑波大学 システム情報系 情報工学域
新城 靖
<yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2012/2012-04-20
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
新城の定義。情報とは、コピーしても同じものと思えるもの。物は、コピーす ると別のものになる。お金は、情報だがコピーしてはいけない。
新城の定義(その2)。情報とは、情報処理の対象となるもの。情報処理とは、 次の3つ。
外から見える人間の情報処理
人間の対話では、実は、non-verbal な情報(文字にならない情報)のやり取り が多い。非言語的な情報は、コンピュータで扱うことは苦手。
講義内容も、印刷された資料/Webの資料の情報量よりも非言語的な情報が多い。

図? ハードウェアの構成要素
保存する==書く、取り出す==読む
1ビットの情報で表現できること
1バイトあるとできること
1ブロックは、512バイト〜8192バイトが多い。 記憶媒体によって違う。
CPU (Central Processing Unit、中央処理装置、中央演算装置)は、コンピュー タの計算を行う部品である。プロセッサ(processor)、 MPU (Micro Processing Unit) と言われることも ある。
CPU は、内部に 数が少ないが、計算の中間結果を置くための高速な 小容量の記憶のための部品(レジスタ)と 計算のための部品(ALU、Arithmetic Logic Unit)を持つ。
CPU は、次の動作を、ひたすら繰り返す
CPU は、メモリ(主記憶)に入っいているプログラムに従って、やはりメモリ (主記憶)に入っいているデータを操作する。CPU が実行できるプログラムは、 機械語と呼ばれる。
CPU の種類によって、プログラム(機械語)が違う。 プログラム(ソフトウェア)を買う時には、CPU の種類に気をつける。
CPUが速いほど、計算は速い。CPUの速さは、クロックの周波数(単位は、Hz)を 目安にできる。たとえば、2GHz の CPU は、1GHz の CPU の2倍の速度が 出ると期待できるが、実際には周波数以外の技術で高速化がなされることも 多い。CPU の種類が違うと周波数の比較の意味はない。
情報量の単位。
情報量の単位、ビットやバイトには、次のような係数とともに使われる。
意味:
表現: 101
意味:
表現: 101
意味:
16進数を表すのに、頭に 0x を付けることがある。C 言語の表記方法。 8進数を表すのに、頭に 0 を付けることがある。C 言語の表記方法。
16進数を転記する必要がでてくることがある。
2進数 8進数 10進数 16進数
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10
100000 40 32 20
1000000 100 64 40
10000000 200 128 80
100000000 400 256 100
1000000000 1000 512 200
10000000000 2000 1024 400
100000000000 4000 2048 800
1000000000000 10000 4096 1000
10000000000000 20000 8192 2000
100000000000000 40000 16384 4000
1000000000000000 100000 32768 8000
10000000000000000 200000 65536 10000
2の補数は、算盤で負の数を扱う時と同じ方法。 −nを、nを加えると、0(桁溢れ)になるよう。
The Unix Super Text 56.1.2節 参照。
表現:
(小数点の左側に m 桁、右側に i 桁)
意味:
整数は、任意の進法で正確に表現できるが、小数は表現できないことがる。 コンピュータの内部で、小数を2進法で扱う方法が主流だが、 会計分野等で10進法で扱う場合もある。
小数を次のように考え、 指数部 e と小数部(仮数部) f の整数の組で表現する。
b は、2 が使われることが多い。(10 が使われることも、16 が使われることも ある。)
浮動小数点に関して、標準規格(IEEE 754)がある。b=2。 単精度(float)は、全体で 32 ビット(符号(正負)1ビット、f に 23ビット、e に 8 ビット)。 倍精度(double)は、全体で 64 ビット(符号(正負)1ビット、f に 52ビット、e に 11 ビット)。
コンピュータとは関係ない文字集合
A 1 B 2 C 3 ... Z 26モールス符合。
あ 11 い 12 う 13 え 14 お 15 か 21 ... さ 31 ...
英語のアルファベット(大文字、小文字)や数字や記号などの文字を符号化す るために、現在もっともよく使われている対応表は、ASCII(American Standard Code for Information Interchange)。 国際標準としては、ISO 646。
英文の電子メール、C言語のプログラミングなどで使われている。
ASCII というと、符号化の方法だが、文字集合を意味することもある。 文字集合では、ASCIIのうち印刷可能な94文字を意味する。ASCII では、 印刷可能な文字以外に、印刷できない制御文字も定義している。
ASCII では、7ビットで文字を表現している。10進では0から127, 16進では 0 から 7F までである。
ASCII コード表
+---------------------------------------------------------------+
| 00 NUL| 01 SOH| 02 STX| 03 ETX| 04 EOT| 05 ENQ| 06 ACK| 07 BEL|
| 08 BS | 09 HT | 0A NL | 0B VT | 0C NP | 0D CR | 0E SO | 0F SI |
| 10 DLE| 11 DC1| 12 DC2| 13 DC3| 14 DC4| 15 NAK| 16 SYN| 17 ETB|
| 18 CAN| 19 EM | 1A SUB| 1B ESC| 1C FS | 1D GS | 1E RS | 1F US |
| 20 SP | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' |
| 28 ( | 29 ) | 2A * | 2B + | 2C , | 2D - | 2E . | 2F / |
| 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 |
| 38 8 | 39 9 | 3A : | 3B ; | 3C < | 3D = | 3E > | 3F ? |
| 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G |
| 48 H | 49 I | 4A J | 4B K | 4C L | 4D M | 4E N | 4F O |
| 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W |
| 58 X | 59 Y | 5A Z | 5B [ | 5C \ | 5D ] | 5E ^ | 5F _ |
| 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g |
| 68 h | 69 i | 6A j | 6B k | 6C l | 6D m | 6E n | 6F o |
| 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w |
| 78 x | 79 y | 7A z | 7B { | 7C | | 7D } | 7E ~ | 7F DEL|
+---------------------------------------------------------------+
たとえば、「ABC」という3文字は、コンピュータの内部では、41 42 43 (16 進)と表現されている。「123」という3文字は、31 32 33 (16進)と表現さ れている。このように、文字と数字は違う。「1」という文字が数値と しは16進で 31 (10進では48) と表現される。
ASCII コード表で、16進で 00 から 1F と 7F は、普通の文字ではない。 これらは、制御文字(control character,制御コード)と呼ばれている。 制御文字は、通信速度の制御に使ったり、行末を表わしたり文字を 消したりするのに使われる。キーボードで、Control-A と打つと、制御文字 を打ったことになる。
重要な制御文字
0D (CR, Carriage Return)
0A (NL, New Line)
09 (HT, Horizontal Tab)
08 (BS, Back Space)
1B (ESC, Escape)
7F (DEL, Delete)
ASCII のバックスラッシュ 「\ (16進数で5C)」は、日本語のJISローマ字文字 集合で円記号「¥ (16進数で5C)」と同じ値になっている。
8ビット符号。 20(16進)から7F(16進)までは、ASCII と同じ。 西ヨーロッパでよく使われている。
ASCII は、7 ビットであるが、1バイト(8ビット)にそのまま入れる。 (1ビット無駄になるが気にしない。)
Latin-1 は、1バイト(8ビット) なので、そのままメモリに入れる。
日本語の場合、次のエンコーディングがよく使われる
| エンコーディング | 文字集合 |
| JISコード | JIS X 0208, JIS X 0208, JIS X 0212 |
| EUC-JP | JIS X 0208, JIS X 0208, JIS X 0212 |
| Shift_JIS | JIS X 0208, JIS X 0208 |
| UTF-8 | Unicode |
ASCII, JIS X 0201 は、エスケープシーケンスを挟んで そのまま使う。 JIS X 0208, JIS X 0212 については、区番号と点番号に 10進で32、 16進で20を加える。
参考:
http://www.hlla.is.tsukuba.ac.jp/~yas/classes/ipe/nitiniti2-enshu-1996/1996-11-18/kanji-code.html
旺文社漢和辞典より。1986年。ISBN 4-01-077522-X。
残念ながら、漢字コードから漢字が引けない。
MacOSX では、「文字ビューア」も使える。
逆に文字を符号化してしまうと、個人の性質を出したい時には、問題がある。 たとえば、署名やラブレター。
コンピュータ上では同じビット列でも、文字コードの違いにより解釈が異なる。 この場合、「文字化け」を起こす。
文字化けを起こした時には、解釈方法(文字コード)切り替えてみると直るこ とがある。
図? MacOSXの文字ビューア
(クリックで拡大)
注意: この課題は、iTerm を必要とする。iTerm が使えるようになった後で実施しなさい。
bcコマンドで obase,ibase を設定することで、基数変換を行いなさい。 The Unix Super Text 56.1.7節 参照。
注意: この課題は、iTerm を必要とする。iTerm が使えるようになった後で実施しなさい。
スクリプト言語 Ruby の printf() を使って、基数変換を 行ってみなさい。以下の例は、10進数の100を 16進数で表示したものである。
$ ruby -e 'printf("%x\n",100)'
64
$
%x は、16進数。%d は、10進数。%o は、8進数。
注意: この課題は、iTerm を必要とする。iTerm が使えるようになった後で実施しなさい。
The Unix Super Text 60章 参照。 デバッガ gdb の表示機能(p)を使って、基数変換を行いなさい。以下の例は、 10進数の100を16進数で表示したものである。
$ gdb
(gdb) p/x 100
$1 = 0x64
(gdb) quit
$
図? システムプロファイラによる iMac G5 の CPU種別、速度、メモリ量の等の表示