こんにちは!
株式会社OGIX クライアントエンジニアのT.Iです!
最近久しぶりにC++に触れる機会があり、ポインタでアドレス指定とかC#では殆どしないよな~と思いました。
その時に番地とかに使われる進数表記について纏めてみるか~といった気分になったので纏めていけたらなと思います。
そもそも進数とは?
進数とは…
あらかじめ定められたN 種類の記号(数字)を列べることによって数を表す方法。
(Wikipediaより抜粋)
との事です。
例えば
私たちが日常使用している10進数の場合だと、1つの位の値は0 ~ 9までを使用しますよね?
9に1を足す場合は位が1つ上の値を+1して元の位の値は0にします。(10になる)
これは0 ~ 9の10種類の記号(数字)を列ねることで数を表しています。
2進数とは
コンピューターの世界では、すべてのデータを2進数で表しています。
2進数というのは、1桁で0か1を使って表しています。
2進数の1桁では0か1なので 2通りになります。
このコンピューターのデータ最小単位を 1ビットといいます。
2は10、3は11、そしてまた桁上りします。
3桁なら3ビット、4桁なら4ビットとなっていきます。
コンピューターが2進数を使用する理由
コンピューターが2進数を使用する理由はIC(Integrated Circuit=集積回路)と呼ばれる電子部品から構成されていることが関係しています。
ICの各々のピンに電気で情報が与えられることによりコンピューターは動作しています。
そしてそれぞれのピンは0Vと5Vの電気のみを扱えるような仕組みになっています。
この0Vと5Vが2進数の0と1に該当するというわけですね。
IC
つまり、ICは複数のピンを使用することにより複数桁の2進数表記で表しているということです。
なお、2進数で数値を表す場合に0101のように上位の桁が0の場合でも0を明示している場合がありますが、その2進数を表すのにICのピンを何本使用しているのかの明示している為だと考えてください。
つまり、もし8本のピンで1を表す場合
00000001という8桁の2進数となります。
16進数とは
16倍ごとに1桁繰り上がる計数法。2進数の4bit(1ニブル)で、16進数の1桁を表す。
ICでは2進数を使用して数値などを表現していますが人間にとっては分かりづらいため、一般的に2進数を4bit毎に区切って16進数として数値を表記します。
16進数は2進数を4bit毎に纏めたもので、8bit,16bit,32bit等の長い2進数も
16進数表記であれば短く表現できます。
2,10,16進数表
まとめ
・2進数が使われる理由
IC(Integrated Circuit=集積回路)のピンに電気で情報を与えるため、0か1で情報をやり取りする仕組みになっている。
・16進数が使われる理由
2進数で大きな数値を表現しようとするととても長くなるため、人間にとって少しでも読みやすくするため。
今回はこちらを理解されていれば問題ないかと思います。
一緒に働く仲間を募集しています!
株式会社OGIXでは一緒に働いてくれる仲間を募集しています!
エンタメ制作集団としてゲームのみならず、未来を見据えたエンタメコンテンツの開発を行っています。
心よりご応募お待ちしております!