コンピュータの原理

by 菊地時夫 last modified 2008-05-20 15:20

コンピュータの原理

情報の「量」

  • 情報量はそれが起こったときの「驚きの量」
  • 例えば
    • コインを投げて表が出たとき ... 1
    • コインを投げて2回続けて表が出たとき ... 2
    • コインを投げて N 回続けて表が出たとき ... N

情報量の単位 bit

  • 1 bit ... 0 又は 1 (2通り)
  • 2 bit ... 0, 1, 2, 3 (4通り)
  • 10 bit ... 0, 1, ... 1023 (1024通り)
  • 20 bit ... 220 = 1048576 通り

コンピュータの原理

  • 2進数
  • 数を bit で表す

2進数のどこがいいのか

  • 素子数を減らせる(桁数は増える)
  • しつこくやってみると こんな感じ

さらに、

  • 足し算が簡単
  • 0+0=0, 0+1=1, 1+0=1, 1+1=10
  • 「九九」が簡単
  • 0x0=0, 0x1=0, 1x0=0, 1x1=1

Intermission

ビットからコンピュータ

  • 0 or 1 ... 無し・有り ... 偽・真
  • スイッチ -> 論理回路 -> 集積回路(IC) -> LSI

計算機の構造

  • CPU (Central Processing Unit) 中央処理装置
    • 計算するところ
  • RAM (Random Access Memory) 主記憶装置
    • プログラムや計算のためのデータ、計算結果を入れるところ
  • HDD (Hard Disk Drive) 補助記憶装置
    • プログラムや計算結果などが 電源を切っても消えない ように入れておくところ
  • 入出力装置
    • キーボード・マウス・ディスプレイ・ネットワークインタフェース

計算機の歴史

メモリーの単位

  • 1 B (Byte バイト) = 8 bit
  • 1 KB = 1024 B = 210 B
  • 1 MB = 1024 KB
  • 1 GB = 1024 MB

ハードディスク容量の単位

  • 1 kB = 1000 B = 103 B
  • 1 MB = 1000 kB
  • 1 GB = 1000 MB
  • 1 TB = 1000 GB

CPU の速さ(クロック周波数)

  • 1 MHz = 1000 kHz = 1000000 Hz (ヘルツ)
  • 1 GHz = 1000 MHz
  • FLOPS (FLOating-point Operation Per Second)
  • SPECint_rate, SPECfp_rate など(実際の計算効率)

ノイマン方式の計算機

  • プログラム(計算の手順)をメモリーに入れる。
  • 機械語(2進数)アセンブラ
  • 高級言語 FORTRAN, COBOL, C, Python

ソフトウェア

  • プログラムのこと
  • 基本ソフトと応用ソフト
    • マイクロソフト・エクセルは ウィンドウズ・Mac OS などで動く「応用ソフト」
    • エクセルの「マクロ」を使った 家計簿ソフト も「応用ソフト」
    • 家計簿ソフトにとって、エクセルは「基本ソフト」
  • 一番の基本は「オペレーティングシステム」
    • WindowsXP, MacOSX, UNIX, Linux, etc ...

簡単なプログラムの例

  • Python
  • x = input("x: ")
    y = x * x
    print "x**2 = ", y
    

プログラムは

  • 順番に実行する
  • 条件分岐する
  • 繰り返し(ループ)がある
    • コピーじゃない
  • 関数(サブプログラム)に跳んで・戻ってくる
    • 複雑化する

闇の魔術の防衛術(その1:基礎知識)

  • Defence Against the Dark Arts
  • 「プログラム」はコンピュータにできることは何でもできる
  • 「闇の魔術(ウィルス)」もプログラム

問題

  • 用紙は縦長横書き、日付・学生番号・氏名を最初に明記
  • 25 を指の2進数で表しなさい。
  • 参考図 参考図

昨年の優秀作(1)

  • 問題は 19
  • 指を伸ばそうとして伸ばしきれないもどかしさが写実的に表現されています。

今年の作品から (1)

  • 力強い グワシ を入れてくれました。

今年の作品から (2)

  • 負論理