1~9までの数を用いて私たちは数を数えていますが、別の数え方があることをご存じでしょうか?
2進数や16進数といった数え方があります。
この2進数や16進数はPLCを使用する時には必要な知識となってきます。
そこで今回は、「2進数や16進数の数え方」や「存在理由などについて」説明していきます。
この記事を読み終えると、2進数と16進数について理解することができますので一緒に勉強していきましょう。
目次
そもそもなぜ10で繰り上がるのか?
そもそもなぜ人間は1~9という数字だけで、数を数えるのでしょうか?
9の次に別の数字があってもよいと思う方もいるでしょうが、現実では10に繰り上がってしまいます。
諸説ありますが、おそらく指が10本だからということが関係していると言われています。
そう考えると繰り上がりのタイミングは数え方によって変化することがわかります。
現在では複数の数え方があり、具体的には2進数、10進数、16進数などがあります。
ちなみに、私たちが日常的に使っている数え方は10進数(decimal)です。
2進数や16進数については日常的には利用することがありませんが、機械の制御などや理系の世界ではたびたび登場します。
ここからは2進数と16進数の概要について確認していきましょう。
2進数(binary)
スマホやパソコンなどの電子機器は単なる機械です。
したがって、そもそも数字を理解することはできません。
しかし、機器の動作は複雑で、数値を取り扱わずに制御することはできないといえます。
では、機械はどのように数字を認識しているのでしょうか。
結論として明確に区別ができる電流のON(導通)とOFF(遮断)に数字の"0"と"1"を対応させることで認識しています。
このような機械の仕組みをベースに生まれた数法が2進数です。
2進数では"0"と"1"だけで数字を表現します。
つまり、2進数の数え方では、2、3・・・9というように私たちが普段使っている数字を使うことができません。
ではどのように数えるのかというと、0、1、10、11、100、101・・・のように数えます。
2進数は使う数字が2つの為、10進数と比べて繰り上がりのタイミングが早いのが特徴で、電子回路においては、回路構成が容易になり、雑音に対する耐性もあり、正確な動作ができます。
ただし、欠点としては人間のとって分かりにくいことです。
例えば10進数で表す"100"は2進数の場合は、1100100になりますが、すぐに10進数の100だと認識することが難しいです。
PLCでも全ての情報をONとOFF、1と0で処理しています。
16進数(hexadecimal)
16進数は、0~9とA~Fの合計16個の英数字を用いた数え方です。
三菱電機製のPLCでは入出力のアドレスに16進数が使われています。
10進数とは異なり、9まで数えたあとに10ではなくAを用いて数えます。
さらにB、C、・・・Fと数えたあとは10に繰り上がります。
ではなぜ、2進数のほかに16進数という数え方が知られるようになったのでしょうか。
その理由は、2進数を数えたときの桁数が膨大になることが関係しています。
たとえば、2進数だと10進数における18をあらわすときに、10010という表記になります。
一方同じ18を16進数であらわすと12という表記になります。
このように、16進数で表したほうが、2進数よりも桁数が少ないです。
2進数と16進数の変換方法
2進数や16進数は数え方が異なりますが、お互いに変換することができます。
参考に2進数から16進数に変換する方法を紹介します。
たとえば、10110110という2進数があったとします。
まず2進数を4桁に分離します。
すると、1011と0110に分かれます。
まず、1011は10進数に変換します。
次に"11"を16進数にします。
11はBに該当します。
そして、0110も同様に変換していきます。
0110は10進数では6になり、16進数でも6に該当します。
これらの英数字を組み合わせた文字列で結果をあらわすと、1011 0110 はB6です。
ちなみに、16進数は10進数と数値を区別するために、先頭に0xをつけるのが一般的ですが、省略されていることもあります。
したがって、正確には0xB6が正しい変換結果になります。
余談:電験の試験にも出題される
少し話が脱線しますが、第3種電気主任技術者試験には機械分野において、10進数を2進数や16進数に変換できるかどうかを試す問題も過去に出題されています。
ちなみに私が電験3種の試験を受験したときにも出題されました。
やり方を覚えてしまえば得点源に変わりますので、電気主任技術者試験を受験する方は進数を変換する方法だけは理解しておくことをおすすめします。
まとめ:進数の知識は必要!
PLCだけでなく、コンピューターやネットワークで扱うデジタルデータは"0"と"1"で表現されます。
2進数や16進数は機械の制御に関わることから、電気に関係する仕事に就くのであれば、最低限知っておくべき内容だといえます。
今回の内容が少しでも参考になれば幸いです。