コンピュータ技術概要

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

数値[編集]

バイト[編集]

「バイト」で検索してもアルバイトしか出てこないけれど、まあ何キロバイト、何メガバイト、何ギガバイトという時の「バイト」である。これは8ビット数値のことを言う。1バイトは8ビットである。8ビットは2進数で8桁の数値である。2進数で8桁の数値は16進数では2桁の数値となる。2進数は0と1を用い、10進数は0~9を用い、16進数は数字が足りないので0~9に加えてA~Fを用いる。

整数[編集]

1バイトの情報は256通りの状態を区別し得る。この256通りの情報を符号なし整数、もしくは符号付き整数と解釈することが可能である。符号なし整数は256通りの情報を0~255の数値だと解釈する。符号付き整数は最上位のビットが1である2進数値を負数と解釈する慣習であり、1バイトを-128~127と解釈する。この慣習は複数バイトの整数値でも同様である。2バイト整数は符号なしの場合だと0~65535となり、符号付きだと-32768~32767となる。

実数[編集]

実数を表現するには浮動小数点を用いる。浮動小数点と言うからには固定小数点もあり、こちらの方は簡易的なものを自前で実装することも可能である。整数部を何ビット、小数部を何ビット、という形で表すのが固定小数点であるのに対し、浮動小数点は何ビットの何ビット乗という形で表す。加減算に強いのが固定小数点で、乗除算に強いのが浮動小数点であると言えるが、いずれにせよ一つの数値を表すために使えるビット数は有限である。

情報[編集]

コンピュータ[編集]

1バイトの情報を、例えばアスキーコードだと解釈することが可能である。これは数値に対して人間が加える解釈である。コンピュータのことを簡単に「万能の活字技術」だと思っていて良い。CPUの処理するもの、メモリの内容物、ファイルの中身、通信網でやり取りされるもの、これらはいずれもビット列、バイト列である。無味乾燥なビット列、バイト列に対して共通の解釈法を定め、情報のやり取りと処理を自動化するのがコンピュータであると言える。

デジタル[編集]

デジタル情報はアナログ情報と違い、複製時に劣化しないのが特徴である。逆に言うとデジタルは、元々デジタルだったものを表すのでない限りはあくまで近似に過ぎないとも言える。

回路[編集]

演算[編集]

デジタルコンピュータはおしなべて2進数で動いている。10進数で10倍や100倍や1000倍の計算が容易、すなわち1の位の右に0を書き足すだけで済む計算であるように、2進数では同様に2倍、4倍、8倍の計算が容易である。このことを利用してx*9をx*8+xに変換して計算したり、x*13をx*8+x*4+xに変換して計算する技術がある。これはハードウェア的にも都合がいい、つまりロジック量が少ないという話にもなる。

消費電力[編集]

よく聞かれるところの「今のコンパイラは賢いので」という言葉。しかし「エコ」という言葉にも訴求力がある。2進数的に都合がいい、ハードウェア的に都合がいい、というのはイコール「消費電力が少ない」ということでもある。個別のアルゴリズム(コーデック等)に関して、性能を落とさず低消費電力のアルゴリズムやカスタムチップを興すことができればアドバンテージとなる。もっぱら古いCPUの時代において用いられた様々な工夫や最適化技術は、現代でもコストの安い回路、すなわち消費電力の少ない回路を作り出す技術ともなり得る。