要約:プログラムはなぜ動くのか2章パート1

記事
IT・テクノロジー
2章にいきたいと思います。
2章もかなり難しかったですが、とりあえず素人でも理解できるくらいにはかみ砕いたので参考にしていただければ幸いです。
ではやっていきましょう

呪いの言葉:2進数

恐らく数学界隈でサイン・コサイン・タンジェントと同じくらい多くの人が恐れてる言葉が2進数だと思ってます。
ですがプログラムに携わる上では正直必須級みたいなのでお付き合いください。
その理由は一重に、パソコンは2進数でしか計算できないからです。
コンピュータはあらゆる数字は2進数でのみ表します。
その理由は、コンピュータが扱う最小単位である1ビットがちょうど2進数一桁に相当するからです。
そして、一般的に2進数を扱う場合は、8の倍数に合わせて表現します。
その理由としては、一般的に情報は全て8桁の2進数、バイトを基本としているからです。
一般的なパソコンのハードウェア(Ram, ストレージ、CPUコア等)が全て8刻みになっているのもこれが理由です。
そして数字が8桁よりも小さい場合は上位(左)のけたに0を追加して補充します。

2進数の計算

では皆さんが最も恐れていたであろうこちら、2進数の計算をやっていきましょう。
理屈さえ理解できればあとはそこまで難しくないです、というと
「その理屈がわかんねーんだよ!」
と突っ込まれそうなので順を追ってかみ砕いて説明します。
2進数の計算の根本は10進数(1‐10で表す一般的な奴)と変わらず、各桁に重みをかけ、足していく作業です。
例を出して説明していきます。
まずは公式ですが、
桁の数字×基数^桁位置-1←これを各桁で行いそれぞれの結果を足す
という風になります。
こちら一見意味が分かりませんが、10進数に置きなおして考えていただければわかるかと思います。
たとえば234。
こちらを先ほどの公式に当てはめると、
1の位は
4×10^0
10^0は1のため、4×1で4
10の位は
3×10^1で30。
100の位は
2×10^2で200。
この全て、200+30+4で234になります。
ここまで読んだ方なら基数が何か、大まかに理解できたかと思いますが、一応説明していくと、基数とは数える上でベース、つまり「基」盤となる考え方を指します。
なので10進数であれば10、2進数であれば2を使います。
ではこれを理解した上で2進数の数字を10進数に変換していきましょう。
00100111
もしできそうであれば先にやってみてください。
一気に解いてしまいますと、左から、
(0x2^7)+(0x2^6)+(0x2^5)+(0x2^4)+(0x2^3)+(0x2^2)+(0x2^1)+(0x2^0)
となります。
長いので一見難しそうですが、やってることはほぼ10進数と変わりません。
例えば一番の左の桁。
こちらは
桁の数字:0
基数:2(2進数ですから)
乗数:桁位置が8なのでそれ-1で7
これを式に直すと
(0x2^7)になります。
こう分ければさっきと違うのは基数だけです。そして基数は進数によって変わるだけです。

まとめ

というわけでお疲れさまでした。
2進数、分けて考えればそこまで難しい話ではないんじゃないかなと思います。
ですが分からなくても落ち込まないでください。
こんなもの一発で分かる変態の方が少ないですから。僕自身理解するまでかなりうなってましたし。
ですが覚悟してください。
明日はこれ以上に難しい奴を出します。
一発じゃ絶対に理解できません。
ですがそれでもお付き合いいただけると幸いです。
なぜならこの辺はパソコンにかかわるならおそらく必須の知識です。

では、以上レイでした
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す