FE EXAM

桁の重み(位取り記数法の本質)

2進・8進・10進・16進、すべての記数法に共通する「桁ごとに重みがある」という仕組みを一枚絵で整理します。基数のべき乗が桁の重みになるという本質さえ掴めば、基数変換は単純な計算になります。

REFERENCE
記数法ごとの桁の重み比較
桁の重み = 基数桁位置(桁位置は右端を0として左へ 1, 2, 3, …)10進数の 1790 = 1×1000 + 7×100 + 9×10 + 0×1 と同じ仕組みが、すべての基数で成立する2進数基数 = 2各桁 0 〜 1桁位置 727= 1281桁位置 626= 640桁位置 525= 321桁位置 424= 161桁位置 323= 80桁位置 222= 40桁位置 121= 21桁位置 020= 118進数基数 = 8各桁 0 〜 7桁位置 383= 5122桁位置 282= 646桁位置 181= 83桁位置 080= 1010進数基数 = 10各桁 0 〜 9桁位置 3103= 10001桁位置 2102= 1007桁位置 1101= 109桁位置 0100= 1016進数基数 = 16各桁 0 〜 15桁位置 3163= 40961桁位置 2162= 256B桁位置 1161= 163桁位置 0160= 1E
サンプル値を10進数に換算(上の図と対応)
記数法サンプル計算式10進数
2進数10110011128 + 32 + 16 + 2 + 1179
8進数26302×512 + 6×64 + 3×8 + 0×11432
10進数17901×1000 + 7×100 + 9×10 + 0×11790
16進数1B3E1×4096 + 11×256 + 3×16 + 14×16974
解説

📌
桁の重みとは

10進数 1790 を桁ごとに分解1×10007×1009×100×1

桁の重みとは、各桁が表す値の倍率のことです。たとえば10進数の「1790」は、千の位に1、百の位に7、十の位に9、一の位に0を置いて、それぞれを桁の重み(1000, 100, 10, 1)と掛けて足したものです。

1×1000 + 7×100 + 9×10 + 0×1 = 1790
これは普段意識せずに使っている計算ですが、「同じ数字でも置く位置によって表す量が変わる」という仕組み(位取り記数法)の核心です。2進数も8進数も16進数も、同じ仕組みで動いています。

上の図解で、各記数法の桁ボックスを見比べてください。右端の桁は必ず「1」(基数の0乗)で、左に進むごとに基数が掛けられて重みが大きくなります。

📌
基数のべき乗との関係

桁の重み = 基数桁位置桁位置は右端を0として左へ 1, 2, 3, …たとえば10進数なら 10⁰=1, 10¹=10, 10²=100, 10³=1000

桁の重みは、「基数」をそのままべき乗したものになります。基数とは「使う記号の種類数」のことで、これが記数法を決める要素です。
2進数の基数は2 → 重みは 2⁰, 2¹, 2², 2³ = 1, 2, 4, 8
8進数の基数は8 → 重みは 8⁰, 8¹, 8², 8³ = 1, 8, 64, 512
10進数の基数は10 → 重みは 10⁰, 10¹, 10², 10³ = 1, 10, 100, 1000
16進数の基数は16 → 重みは 16⁰, 16¹, 16², 16³ = 1, 16, 256, 4096

右端の桁の重みは必ず「1」になります。これは n⁰ = 1(任意の数の0乗は1)という数学の決まりからきています。一見不思議に見えますが、桁の重みが基数のべき乗だと考えれば自然な結果です。

身近な例で考えると、距離の単位に似ています。1km = 1000m、1m = 100cm、1cm = 10mm のように、「単位の刻み」を変えることで同じ量を異なる桁数で表せます。記数法も同じで、基数を変えることで「数の刻み」が変わり、同じ量を異なる表現で書けるのです。

📌
基数変換での使われ方

2進数 10110011 → 10進数 に変換1×1280×641×321×160×80×41×21×1= 128+32+16+2+1= 179 (10進数)

基数変換の問題は、結局のところ「桁の重みを足し合わせるだけ」です。たとえば2進数を10進数に変換するときは、各ビットが1である桁の重みをすべて足せば答えになります。
・2進数 10110011
・桁の重み:128, 64, 32, 16, 8, 4, 2, 1
・1の位置の重みだけ拾う:128 + 32 + 16 + 2 + 1 = 179

逆に10進数から別の基数へ変換するときは、「重みの大きい桁から、その値が入る最大の数を当てはめていく」方法を使います。これは「割り算法」とも呼ばれ、基数で割って余りを記録するという形でも説明されます。仕組みはどちらも同じで、桁の重みを使った分解です。

重要なのは「2の各べき乗を瞬時に思い出せる」ことです。
2⁰=1, 2¹=2, 2²=4, 2³=8, 2⁴=16, 2⁵=32, 2⁶=64, 2⁷=128, 2⁸=256
2¹⁰=1024 (約1K), 2²⁰=約1M, 2³⁰=約1G
これらの値は、メモリサイズ・ビット数・基数変換のあらゆる場面で繰り返し使われます。

関連コンテンツ

桁の重み | Vizigo