コンピュータの世界は2進数と16進数で成り立ってます。

N進法

こんにちわ。

 

コンピュータは、デジタル機器です。

なのでコンピューターの世界では2進数や16進数で表現されることが多いです。

 

 

スポンサーリンク

2進数について

 

2進数(二進法)ですが、英語ではbinaryといいます。

カタカナで書くと「バイナリー」ですね。

 

よく、コンピューターの世界では「バイナリーデータ」という言葉が出てきます。

コンピューターが理解できるデジタルなデータ群のことを「バイナリーデータ」と言います。

 

2進数の世界ではオンとオフしかないので、使われる記号も1と0しかありません。

信号があるかないのか。。。ってことです。

 

単純な表現方法なんですが、複雑なデータを表そうと思うと大量の数字の羅列になってしまいます。

人間がそれを理解しようと思うと大変なことになりますが、もともとコンピュータは単純な情報を高速に処理するために生まれてきた技術ですし、あいまいな情報を処理するのは逆に苦手。

 

なので、2進数のような何かを表そうとすると大量のデータになるけれど、基本が単純なものの方がコンピュータは扱いやすいんです。

 

 

16進数について

 

とは、いうもののこのままでは、人間とコンピュータはお互いの情報を理解しあうことがとても難しい。

人間が理解する側面と、コンピュータが理解する側面をどこかで近づけてあげないといけないわけです。

 

そこで、2進数を一定の長さで区切ってみることにしました。

とりあえず、4桁で区切ってみます。

 

1111

 

これは、10進数で言うと15です。

かと言って、3桁で区切ると

 

111

 

これは、10進数で言うと7ですね。

 

どっちがいいのかは、わかりませんが、とりあえず4桁の方が区切りがよさそうです。

10進数で0から15の16個の記号を1ケタで表せば、人にとっても取扱いしやすくなりそうですよね。

 

なので、10~15までの記号としてアルファベットの「A,B,C,D,E,F」を割り当てて1ケタで表すことができるようにしたのが16進数です。

要は15(つまりF)まで数えたら、1ケタ上がるものが16進数です。

 

たとえば、2進数で

 

1011111101010001

 

というデータを4つづつに区切ると

 

1011/1111/0101/0001

 

となり、それを16進数で表すと

 

BF51

 

となるわけです。

どうでしょうか?

これなら、読みやすくなった気がしませんか?(笑)

 

ここで16進数について改めて整理しますと、

16進数とは、16を底とする位取り記数法である。
一般には、16個の数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F を用いる。A から F は、それぞれ十進での 10 から 15 を表す。

 

です。

 

 

 

表記法について

 

ところで、

2進数の  1001 と、

10進数の 1001 と、

16進数の 1001

って同じ記号の並びですが、表している数字はそれぞれ異なりますよね。

 

10進数に変換すると上から順に

1001

4097

になります。

 

並んでいる記号が何進法で書かれているかがわかるように表記法というものがあります。

表記法はその用途によって色々あるので特に覚えなくてもいいと思うのですが、たとえば

 

16進数の1234は、0x1234と表記します。

また、1234h といった表記もあります。

 

2進数の1010の場合ですと、0b1010と表記します。

 

ただし、2進数も16進数もデジタルやコンピュータなどのハードよりの話だと思ってください。

 

ソフトウェアだとかプログラミングの世界では、人間がわかりやすいように、普通に10進法が使えますので、専門的にやる場合しか、2進数や16進数を意識しなくていいと思いますよ。

 

 

最後までおつきあい、ありがとうございました。

 

 

 

 

 

 

 

コメント

タイトルとURLをコピーしました