16進数について-はじめに-
この記事では16進数について、初心者の方でも理解しやすいように、わかりやすく丁寧に解説します。そもそも16進数とは何か?、どのように使われているのか、そしてなぜ16進数を学ぶことが重要なのか?
プログラミングから日常生活に至るまで、16進数を理解することにより、デジタル世界がより明確に、より身近に感じられるようになるでしょう。
このブログはMQL5についての解説が中心となっていますが、MQL5の学習と実践において、16進数の知識は重要な役割を果たします。
16進数を理解する事はMQL5のプログラミングスキル向上にも大いに寄与する事になるかと思います。
是非楽しんで、お読み頂ければと思います。
MQL5の基礎文法に関わる中で、16進数の知識が問われる分野というと、さしあたってはColor(カラー)型が挙げられます。Color(カラー)型については↓の記事をご参照ください。
そもそも10進数とは何か?
16進数について説明する前に、そもそも10進数とは何か?という点をまずはおさらいしておきましょう。
10進数とは、私たちが日常生活で最も一般的に使用している数の表現方法です。このシステムは、0から9までの10個の数字を基本として数を表します。
10進数の基本
10進数では、右から左に数えるとき、一つの桁が上がるごとに、その数は10倍になります。例えば、右から2番目の桁は10の1乗(つまり10)、3番目の桁は10の2乗(つまり100)を意味します。したがって、123という数字は、100(1×10の2乗)に20(2×10の1乗)と3(3×10の0乗)を加えたものです。
10進数の使い方
10進数は、私たちの日常生活のあらゆる場面で使われています。お金の計算、時間の測定、距離の測定など、基本的な数学の計算はすべて10進数で行われます。さらに、科学や工学の分野でも、基本的な数値表現として10進数が使用されています。
以上の10進数に関する基本的な理解を確認したところで、いよいよ16進数について見ていきます。
16進数とは何か?
16進数の基本的な概念
16進数は、プログラミングやコンピュータ科学で広く使用されている数の表現方法の一つです。
通常、私たちは10進数を使用しています。
すでに説明した通り、10進数は0から9までの10個の数字を基礎として、数を表現しています。
しかし、16進数は10進数では0から9だった10個の基礎単位をさらに拡張させ、0から15までの16個の値を使用します。
※ここでの「進数」という言葉は、数を表現するための基数(基本となる数)の数を意味します。
16進数では、10から15までを表現するためにアルファベットのAからFを使用します。つまり、16進数では次のように数を表現します:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F。
10進数との違い
10進数と16進数の主な違いは、使用される数字のセットです。
10進数では0から9までの10個の数字を使用し、16進数では0からFまでの16個の数字(数値と文字を含む)を使用します。
たとえば、10進数の10は16進数では「A」と表され、16進数の10は10進数で言う16に相当します。
これは、16進数の各桁が16のべき乗を基にしているためです。
上記の説明だけでは分かり辛いかもしれません。もっと具体的に言うと、
16進数では、各桁が16を何度かけるかを示している、という事です。
これは、私たちが日常的に使う10進数の考え方と基本的に同じです。
10進数では、右から2番目の桁が10を1回かけたもの(つまり10)、3番目の桁が10を2回かけたもの(つまり100)を意味します。
同じように、16進数では、右から2番目の桁が16を1回かけたもの(つまり16)、3番目の桁が16を2回かけたもの(つまり16×16、または256)を表します。16進数では基本となる数が16となる訳です。
例えば、16進数で「10」という数字は、10進数でいうところの16(16を1回かけたもの)を意味し、16進数で「100」という数字は、10進数でいうところの256(16を2回かけたもの)に相当します。つまり、16進数では数字が右に1つ進むたびに、その数は16倍になるのです。
補足:べき乗とは?
「べき乗」とは、ある数(基数)を同じ数で何回もかけることを意味します。
たとえば:
- (2の3乗)は、2×2×2と同じで、結果は8です。
- (5の2乗)は、5×5 と同じで、結果は25です。
簡単な16進数の計算例
16進数の計算は、10進数と同じように行いますが、数を数える基準(基数)が16になる点が異なります。
例えば、16進数で「9」に「1」を足すと「A」になり、これは10進数で10に相当します。「A」は16進数で10を表しますから、「9」に「1」を足すと10進数の「10」になります。
もう少し複雑な例を見てみましょう。「1F」(16進数)に「1」を足すとどうなるでしょうか?
答えは「20」(16進数)です。
これは、F(15)に1を足して16になり、その結果次の桁に移動するためです。
10進数に変換しつつ考えてみましょう。
‘1F’ は16進数で1×16 + F(15)= 31(10進数)に相当し、そこに1を足すと32になります。
16進数の「20」は、10進数で32です。この計算では、F(15)に1を足して16になり、その結果次の桁に移動するため、「1F」+「1」は16進数では「20」となる訳です。
4. 10進数から16進数への変換
10進数から16進数への変換は、コンピュータサイエンスやプログラミングで重要なスキルです。
このセクションでは、その変換方法と実際の変換例をわかりやすく解説します。
10進数から16進数への変換方法
10進数から16進数への変換は、まず10進数を16で割り、余りを記録するプロセスから始まります。このプロセスを、商が0になるまで繰り返します。
それぞれのステップで得られる余りは、16進数の値に対応します。
具体的には以下のステップを踏んで変換が行われます
10進数から16進数への実践的な変換例
例えば、10進数の「956」を16進数に変換する場合を考えてみましょう。
- 956を16で割ると、商は59で余りは12です。16進数では、12は「C」と表されます。
- 次に、商の59を16で割ります。商は3で余りは11です。16進数では、11は「B」と表されます。
- 最後に、商の3を16で割ると、商は0で余りは3です。
- 得られた余りを逆順に並べると、「3B」が得られます。したがって、956の16進数は「3BC」となります。
このように、10進数を16進数に変換するプロセスはステップバイステップで行われ、各ステップで得られた余りが最終的な16進数の値を形成します。
この方法を身に付けることで、どんな10進数も簡単に16進数に変換することができます。
補足:商とは?
「商」とは「割る数が割られる数の中に何個あるか」を示す数値です。数学において、割り算は割られる数(被除数)を割る数(除数)で分割する操作です。このとき、割る数が割られる数の中に完全に収まる回数が「商」になります。
例えば、10を2で割った場合、2が10の中に5回収まります。従って、10÷2の商は5です。同様に、20を4で割った場合、4が20の中に5回収まるので、20÷4の商は5になります。
割り算の計算においては、通常「商」に加えて「余り」も重要な役割を果たします。余りは、割り算の結果として完全に割り切れなかった部分を示します。例えば、18を5で割ると、商は3(5が18に3回収まる)で余りは3(18から15を引いた残り)になります。
16進数から10進数への変換
ここでは、16進数から10進数への変換プロセスをステップバイステップでわかりやすく解説します。
16進数から10進数へ変換する為の基本原理
16進数を10進数に変換する際の基本原理は、各桁が16のべき乗に基づいていることを理解することです。
例えば、16進数の「1A」を10進数に変換するには、右から左へと各桁の値を16のべき乗でかけて、その結果を合計します。
ステップバイステップの変換プロセス
- まず、16進数の各桁を右から左へと調べます。最も右の桁は16の0乗(1)、その隣は16の1乗(16)、その次は16の2乗(256)となります。
- 次に、各桁の値にその桁の16のべき乗をかけます。16進数では、AからFまでの文字は10から15までの数値を表します(A=10、B=11、C=12、D=13、E=14、F=15)。
- 最後に、これらの結果をすべて合計します。
具体例を見ていきましょう。
16進数から10進数への変換具体例
- A(10)は最も右の桁にあるので、10×16の0乗(10×1)= 10
- 1はその隣の桁にあるので、1×16の1乗(1×16)= 16
- これらを合計すると、10 + 16 = 26
- したがって、「1A」の10進数での値は26です。
もう一つの例として、16進数「2F3」を10進数に変換してみましょう。
- まず、最も右の桁から見ていきます。「3」は16進数で3です。これは16の0乗(1)をかけるため、3×1=3となります。
- 次に、右から2番目の桁は「F」です。これは10進数で15に相当します。これに16の1乗(16)をかけると、15×16=240となります。
- 最後に、左端の「2」は16の2乗(256)をかけます。2×256=512です。
- これらの値を合計すると、3 + 240 + 512 = 755となります。
したがって、16進数「2F3」の10進数での値は755です。
このように、16進数を10進数に変換するには、各桁を適切な16のべき乗でかけて、その結果を合計します。
このプロセスを理解することで、あらゆる16進数を10進数に簡単に変換することができます。
まとめ
今回の記事では16進数について解説しました。
まず最初に16進数を理解する事の意義について説明しました。
※詳しくは「16進数について-はじめに-」セクションをご覧ください。
そして、16進数について説明をする前に、そもそも我々が普段の生活でなじみ深い10進数とはどういいう性質のものか、という事についても解説を行いました。
※詳しくは「そもそも10進数とは何か?」セクションをご覧ください。
その後、16進数の基本的な概念や10進数との違い、などを中心に16進数についての解説を行いました。
※詳しくは「16進数とは何か?」セクションをご覧ください。
そして、上記の基本説明がスムーズに理解できるように簡単な16進数の計算例を提示して補足説明を行いました。
※詳しくは「簡単な16進数の計算例」セクションをご覧ください。
その後、10進数から16進数への変換方法や、逆に10進数から16進数へ変換する方法をステップ別に解説しました。
今回の記事では、16進数の世界についての基本から応用までを一緒に学んできました。
16進数の基本的な概念、10進数との違い、さらには10進数から16進数へ、そして16進数から10進数への変換方法に至るまで、幅広いトピックをカバーしました。
16進数は単なる数字の表現形式以上のものです。それはコンピュータの内部でどのようにデータが扱われるか、そして私たちがデジタル世界とどのように相互作用するかを理解する鍵です。
今回の記事が16進数に対する理解を深め、より高度なプログラミングの概念への興味を刺激する一助となれば幸いです。
今回は以上とさせて頂きます。
最後までお読みいただきありがとうございました。
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。