コンピュータアーキテクチャ~N進法~(脳内まとめ➀)
マイクロプロセッサ = ハードウェア
目標は、ソフトウェアの世界の数値をハードウェアでいかに処理しているのかを理解していく。
そもそも、「ソフトウェア」と「ハードウェア」の違いって...
「ハード」という言葉が「hard(硬い)」からきていて、「ソフト」という言葉が「soft(軟らかい)」からきている。
- 例えば、
- 洗濯機が「ハードウェア」、洗濯機のボタンにより操作できる命令の部分が「ソフトウェア」。
- スマホやパソコン本体が「ハードウェア」、アプリやゲームなどが「ソフトウェア」。
- テレビが「ハードウェア」、番組が「ソフトウェア」。
以上の例のように、
簡単に変更が可能なものが「ソフトウェア」、変更が不可能なものが「ハードウェア」
という大まかなイメージでよい。
今回は、コンピュータの中で行われる数値計算に触れる。
人間が日常で扱う数字は「10進法」の世界。
10進法を少し見ていくと、各桁は0~9までの数字を用いて、数を表現。9より大きな数がその桁に入ることになったら、
上位の桁を「その数÷10の商」だけ挙げて、自身の桁には「その数÷10のあまり」が入る。
2進法や8,16進法も、基本的な考えは同じで、n進法を考えると、各桁に入る数字は0~(n-1)までの値しか入らず、nを超える場合は、上位の桁も更新する必要があり、(n-1)より大きな数がその桁に入ることになったら、
上位の桁を「その数÷nの商」だけ上げて、自身の桁には「その数÷nのあまり」が入る。
10進数で見ると、各桁の重みは1,10,100,1000....のように10の累乗が重みとして乗っており、n進数も同様に各桁の重みは1,n,n^2....のようにnの累乗が重みとして乗っていると考えることができる。
ただし、11進法以上ではアルファベットを使用していく。
10 11 12 13 14 15
A B C D E F
n進法から10進法への変換
n進法の各桁の重みを各桁にかけて足し合わせるのみ。
10進法からn進法への変換
商が0になるまで、nで割り続けて、割る際に出た余りを逆順に並べればよい。
小数部分の変換
小数部分が0にまるまで、小数部分にnをかけて、得られる積の整数部分を順番に並べていけばよい。
しかし、中には何度かけても小数部分が0にならないこともある。
n進法の計算はさておき、今日のコンピュータはデータを2進法で表現している。そして、0と1は電圧の有無に対応させて、うまいこと計算を行っている。0,1により、どのようにして演算を行うかは詳しくは「論理回路」で学ぶ。
2進法における1桁はビット(bit = binary digit)で表現し、8ビットを1バイトで表す。
なぜ⇒メートル法のように、1000で違う表現をする。(詳細には1024)
10進法...1000→キロ(K)
(1000)^2→メガ(M)
(1000)^3→ギガ(G)
2進法...1024→キロ(K)
(1024)^2→メガ(M)
(1024)^3→ギガ(G)
★ちょこっと豆知識
2進数の4桁は16進数の1桁に相当
2進数の3桁は8進数の1桁に相当