Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

n進数(エヌシン数)とは | 意味や読み方など丁寧でわかりやすい用語解説

n進数(エヌシン数)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

エヌしんすう (エヌシンシュウ)

英語表記

n-ary number (エヌアリーナンバー)

用語解説

n進数とは、数を表現する方法の一つで、数を数える際の「基数」が何かによって分類される。我々人間が日常的に使用しているのは「10進数」だが、コンピュータの世界では「2進数」が基本であり、「16進数」も頻繁に用いられる。システムエンジニアを目指す上で、これらn進数の概念とその特性を理解することは、コンピュータの動作原理やデータの表現方法を深く把握するために不可欠である。

まず、基数とは、その表記体系で何種類の数字を使用するか、そして桁が一つ上がるごとに値が何倍になるかを定義するものである。例えば、10進数では0から9までの10種類の数字を使用し、桁が一つ左に移動すると値が10倍になる。123という数は、100が1つ、10が2つ、1が3つという意味であり、1×10の2乗 + 2×10の1乗 + 3×10の0乗と分解して考えられる。これは「位取り記数法」と呼ばれる仕組みであり、どのn進数もこの原理に基づいている。

コンピュータが使用する2進数では、0と1の2種類の数字のみを使用する。これは、コンピュータ内部の回路が電気信号の「オン」か「オフ」か、電圧の「高い」か「低い」かといった二通りの状態しか区別できないことに由来する。コンピュータは全ての情報をこの0と1の組み合わせで表現し、処理している。2進数では、桁が一つ左に移動すると値が2倍になる。例えば、2進数の1010は、1×2の3乗 + 0×2の2乗 + 1×2の1乗 + 0×2の0乗となり、10進数では8 + 0 + 2 + 0 で10に相当する。この0と1の最小単位を「ビット」と呼び、情報の最小単位として扱われる。

次に、16進数について解説する。16進数は0から9までの数字に加え、AからFまでのアルファベットを使用して16種類の値を表現する。具体的には、Aが10、Bが11、Cが12、Dが13、Eが14、Fが15の値をそれぞれ表す。16進数では、桁が一つ左に移動すると値が16倍になる。なぜ16進数がIT分野で広く使われるかというと、2進数との親和性が非常に高いためである。2の4乗が16であるため、2進数の4桁がちょうど16進数の1桁に対応する。例えば、2進数の1010は16進数のAであり、2進数の1111は16進数のFである。コンピュータが扱う2進数のデータは非常に桁数が長く、人間にとって読みにくく間違いやすいが、それを4桁ずつ区切って16進数に変換することで、はるかに短く、読みやすい形に表現できる。これにより、メモリのアドレス、IPアドレスの一部、色コード(RGB値)、MACアドレスなど、コンピュータ内部の様々なデータを効率的に記述し、理解することが可能になる。

かつては2進数の3桁が1桁に対応する8進数(0から7の8種類の数字を使用)も一部で使われたが、現在は16進数が主流である。

異なるn進数間で数値を変換することを「基数変換」と呼ぶ。最も基本的な変換は、任意のn進数から10進数への変換と、10進数から任意のn進数への変換である。n進数から10進数へは、各桁の数字にその桁の重み(基数の冪乗)を掛けて合計することで求められる。例えば、16進数の2Aは、2×16の1乗 + A(10)×16の0乗 = 32 + 10 = 42となり、10進数の42を表す。逆に10進数からn進数へは、変換したい基数で繰り返し割り算を行い、その余りを逆順に並べることで求められる。

システムエンジニアにとってn進数の知識は、単なる数学的な概念に留まらない。コンピュータがどのように情報を格納し、処理しているかを理解する上で、2進数と16進数の理解は必須である。プログラミングにおいてビット演算を行う際や、メモリの内容を直接読み解くデバッグ作業、ネットワークプロトコルのパケット構造を解析する際など、多くの場面でn進数表現に遭遇する。また、OSやハードウェアの設定、特定のデータフォーマットなどを理解する上でも、これらの知識は不可欠となる。n進数を学ぶことは、コンピュータという機械の「言葉」を理解し、より深くシステムを設計、開発、運用するための基礎となるのである。

関連コンテンツ