マツケンのマインド

とある理系大学生のブログです。基本は勉強とつぶやきとまとめです。

コンピュータアーキテクチャ~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桁に相当