:
この文書について...
:
コンピュータの基礎知識
:
コンピュータの基礎知識
コンピュータ
データ表現
コンピュータの内部では,データを2進数で表現します.2進数とは,
0
と
1
のみで値を表現した数です.この1桁を
ビット
(bit)と いいます.例えば,3ビットの2進数,
110
は,10進数の
6
を表します. 2進数を10進数に変換するためには,以下の計算をします.
上の例では,
となります.データを表現する時, 2進数では冗長となってしまうため非常に不便です.そのため,
0〜7
を使った8進数や,
0〜9,A〜F
を使った16進数を用いて データを表現することがあります. (最近では,16進数で扱う場合が多いようです). 2進数から,8進数,16進数に変換するのは簡単で,各々3ビット,4ビットずつ 集めればよいのです.例えば,16ビットの2進数,
1011001101010101
は,3ビットずつ集めると,
1 011 001 101 010 101
となり,これらをそれぞれ
0
〜
7
に対応させると,
1 3 1 5 2 5
となるので,8進数表現では
131525
になるということです. 16進数の場合も同様で,4ビットずつ集めて,
1011 0011 0101 0101
とし,これらをそれぞれ
0
〜
9
,
A
〜
F
に 対応させると,
B 3 5 5
となり,
B355
が16進数表現です.
表 1 : 各進数の対応表
10進数
2進数
8進数
16進数
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
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
ビットとバイト
先述のように,2進数の
0
または,
1
の1桁をビットいいますが, ビットを集めて8ビットで,1
バイト
(byte)といいます. 16進数1桁は4ビットを要するので,1バイトは16進数2桁で表現する ことができます.ある1バイトのビットパターンが,
01101010
である時,この1バイトを16進数2桁,すなわち,
6A
と表現することができます.
キロ,メガ,ギガ,テラ
1キロメートル,1キログラムのように,
キロ
(
)は,
1000
を示しますが, コンピュータでは,習慣的に
1024
でキロを示します.それは,
1024
は
に相当し,2進数の世界で扱いやすいからです.同様に,
より,
は
メガ
といい,
に相当します.以下順次,ギガ(
),テラ(
)という単位があります.
表 2 : キロ,メガ,ギガ,テラ
計算式
値
キロ(
)
メガ(
)
ギガ(
)
テラ(
)
データの大きさ
2進数で,データを表現する場合,その大きさをいつも意識しなければなりません. 例えば,16進数1桁は
0
〜
F
まで16種類の値を表現 でき,大きさは4ビットを要し,8ビット(1バイト)では,
256種類の値を表現できます.より大きな値では,どうでしょう.例えば, 24ビットは,
より,10ビットで1024種類(
種類),20ビットで
種類(上の表より),残りの4ビットは16種類より,
種類の値を表現できることがわかります.このようにしてキロ,メガ,ギガ, テラを使うと簡単に,計算することができます.この計算は,後述する記憶(メモリ)の 大きさと,番地づけに関係があります.
表 3 : データの大きさ
ビット数
計算式
表現できる値の数
1
4
10
(
)
12
20
24
30
32
40
コンピュータ
コンピュータ(computer)は,日本語では計算機と訳しますが,最近では, 計算するだけでなく,さまざまな道具や,環境の一部として位置づけることが できます.また,人間に近い機械として,または人間に代わるものとして, 一部では,研究されていますが,現在のところ, 機械の粋を脱したものではありません. 本書で紹介する,C言語を代表としたプログラミング言語を用いて,コンピュータに 処理内容を教えてあげることが必要です.もともと,プログラミング言語は, 命令(instruction)から発展しました.プログラミング言語は,大きく分けて 2種類のレベルがあります.
低水準言語
とは,よりコンピュータに近い形で表現された命令を 使って,手続きを表現する言語で,機械語やアセンブリ言語がこれに あたります.アセンブリ言語とは,機械語と1対1対応の命令語から なる言語で,各計算機によって異なります.一方,高水準言語とは, 一般に,各計算機に依らず,より人間が理解しやすい形で手続きを表現する 言語を指します.本書で紹介するC言語は,この範疇に入ります.しかし, C言語は,本来オペレーティングシステムなどの基本的なシステムを 記述するための言語(
システム記述言語
(system description language)という) として開発されたため, これらの境界線上にあるともいえます.
一般に,コンピュータは,以下の図で表現されます.
最近,主流のパソコンやワークステーション は,どちらもこの構成で表現することができます.
バス
(bus)とは,コンピュータの背骨にあたる部分で,すべての 情報は,このバスを通して伝達されます.通常,8の倍数本の線から なり,1本に付き同時に1ビットのデータを伝達します. よく"16ビットコンピュータ","32ビットコンピュータ"といいますが,この バスの本数により定義することが多いようです(CPUのレジスタの大きさより 定義する場合もあります). CPUとは,中央処理装置(central processing unit)の略で, 機械語を解釈し実行します. また,周辺装置 との情報の交換は,その間に,
入出力インターフェース
(入出力装置) (input/output interface)という装置を通す必要があります. 内部にある,高速な
記憶(メモリ)
(memory)のことを
主記憶
(main memory)といい, 1バイト(8ビット)毎に管理され,通し番号がつけられています. その番号のことを
番地
(address)
1
といいます.通常,以下のような表(
メモリマップ
という)で表現します.
データの大きさ
で用いた計算を使うと,番地割当て(addressing)の時, どれくらいの大きさの番地が必要か計算できます.例えば,
バイトの 記憶を持つ計算機では番地を表現するために何ビット必要か,を考えると,
より,20ビットあれば,
種類の値を表すことがでます.20ビットで, 番地を表せばよいことがわかります.
フロッピディスク
コンピュータで情報処理をする場合に,情報を記憶する必要があります. そのための装置を
記憶
(memory)といいます.記憶 は,一次記憶と,二次記憶に分けることができます.
一次記憶とは,主記憶のことで,二次記憶とは,テープ(tape),ディスク (
固定ディスク
(hard disk),
フロッピディスク
(floopy disk))など を指します.パソコンやワークステーションは, 固定ディスク,フロッピディスクを共に備えています.固定ディスクは, 入出力インタフェースの規格を合わせれば,同じ装置を 使うことができ,通常その容量(記憶することができる量)で区別します. 一台につき大きさは,最低40Mバイトから,数Gバイトまであります. フロッピディスクは,容量,形式もさまざまです.表1にその一覧を示します. フロッピディスクは,以下のような同心円の集まりで表現することができます
2
.
各々の円(線)は,磁性帯によって情報を格納する溝を表します.この各円 を
トラック
(track)といいます.また,各トラックは,いくつかの
セクタ
(sector)に分けられます.このセクタ毎に,
一定のバイト数
情報が格納されています. 両面使うことができます.よく,フロッピディスクに2DDとか,2HDなど と記載されていますが,この
2
は,
両面
(double sided),
D
は,
倍密度
(double density),
H
は,
高密度
(hight density), 最後の
D
は,
倍トラック
(double track)の意味です. フォーマット(format,区画化) の仕方が異なるので注意しましょう.以下に,最近使われている フロッピディスクのフォーマット形式を示します.
表 4 : フロッピディスクの容量
NO
媒体密度
byte/
sec/
tr/
計算式
容量
sec
1
tr
2
surface
3
バイト数
1
2DD
512
8
80
640
2
2DD
512
9
80
720
3
2HC
512
15
80
1200
4
2HD
1024
8
77
1232
5
2HD
512
18
80
1440
フロッピディスクの容量
例えば,代表的な
4.
の2HDのディスクについて説明します.1セクタ あたり1024バイト,1トラックに8セクタ,片面に77トラックあるので,
となります.片面に616
バイト格納できます.両面使うことが できるので,
となり,全体で,約1.2Mバイト格納することができます.
:
この文書について...
:
コンピュータの基礎知識
:
コンピュータの基礎知識
平成13年4月16日