B バイナンス · 世界最大級の暗号資産取引所バイナンス 登録 → AD OKX OKX · 世界の大手暗号資産取引所OKX 登録 → AD
oco.kr.
🔟

2進法と16進法はなぜ使うのか

2進法と16進法は同じ数を別の書き方にしているだけです。機械が2進法を使う理由、16進法が便利な理由、手で変換する方法、ファイル権限の8進数の読み方をまとめました。

📚 単位と表記はなぜこんなに種類があるのか · 3/12· ⏱ 読了目安 2分 ·情報更新 2026-10-01
📋 基本情報4
要点
進法は数の書き方であって数そのものではない
2進法
電気が入・切の二つの状態なので機械に合う
16進法
2進法4桁がちょうど1桁になるので短く書ける
注意
0xや0bのような接頭辞がないと何進法か分からない

10進法は指のせい

私たちが10進法を使うことに数学的な理由はありません。指が10本だからそう固まっただけです。進法は、いくつごとに桁を上げるかという取り決めであり、どの進法で書いても数そのものは同じです。255と0xFFと0b11111111は、同じ数を3通りに書いたものです。歴史的には別の進法も使われてきました。1時間が60分、円が360度なのは60進法の名残で、ダース(12個)も12進法の名残と見ることができます。

機械が2進法を使う理由

電子回路が安定して区別できる状態は、電圧が高いか低いかの二つです。10段階を区別しようとすれば、雑音にはるかに弱くなります。ですから計算機は二つの状態ですべてを表し、その表記が2進法です。ビット1つは、この二つの状態のどちらかを収める場所です。ビットを八つまとめたものが1バイトで、1バイトは2の8乗、つまり256通りの値、0から255までを表せます。

16進法が便利な理由

2進数は桁が長すぎて人には読みにくいものです。16は2の4乗なので、2進数4桁が16進数1桁にちょうど収まります。そのため2進数と16進数の変換は計算なしで、4桁ずつ区切って置き換えるだけで済みます。色の符号やメモリの番地を16進法で書く理由がこれです。IPv6のアドレスや機器のMACアドレスのように、バイトを並べて書く必要がある場面でも16進数が標準の表記です。

  • 2進数1111 = 16進数F = 10進数15
  • 2進数8桁 = 16進数2桁 = 1バイト
  • 16進数は0〜9の次にA〜Fを使う
  • 8進法は3桁ずつ区切れ、ファイルの権限の表記に使われる

何進法かを示す

10とだけ書かれていては、10進数の十なのか2進数の二なのか分かりません。そのためプログラミングでは0xを付けて16進数、0bを付けて2進数であることを示します。接頭辞なしで書かれた数を別の進法と取り違えて起きる誤りは見つけにくいので、表記をはっきりさせるほうが安全です。言語によって8進数は0oを付けたり、数字の前に0を付けたりして表しますが、先頭に0が付いた数を8進数として読む環境もあるので注意が必要です。010が10ではなく8と読まれることがあります。

手で変換する方法

10進数を別の進法に変えるには、その進法の数で割り続けて余りを逆から並べます。逆に別の進法を10進数に変えるには、各桁にその進法のべき乗を掛けて足します。よく使う値をいくつか覚えておけば、多くの場面で計算そのものが不要になります。たとえば13を2進数にすると、13÷2=6余り1、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1なので、余りを逆から読んで1101になります。逆に1101は8+4+0+1=13です。

ファイル権限の8進数を読む

ユニックス系のシステムのファイル権限755や644といった数は8進数です。1桁が2進数3桁、つまり読み取り・書き込み・実行という三つの権限のオンとオフを表します。読み取りは4、書き込みは2、実行は1で、それらを足した値が1桁になります。3桁は左から所有者、グループ、それ以外の利用者の順です。

  • 7 = 4+2+1 = 読み取り・書き込み・実行すべて
  • 5 = 4+1 = 読み取りと実行
  • 4 = 読み取りのみ
  • 755 = 所有者はすべて、ほかは読み取りと実行

負の数と小数はどう書くか

計算機は負の数をふつう2の補数という方式で保存します。8ビットなら0から255の代わりに−128から127までを表す、という具合です。そのため同じビットの並び11111111が、符号なしの数では255、符号付きの数では−1と読まれます。小数はさらに厄介で、10進数の0.1は2進数では終わりなく続く数になるため、正確には保存できません。多くのプログラミング言語で0.1足す0.2がちょうど0.3にならないのはこのためです。お金のように正確さが必要な値は、整数に直して扱うことが多くあります。

覚えておくと便利な値

2のべき乗をいくつか覚えておくと、進法の変換や容量の計算がずっと速くなります。2の10乗が1024で1000に近いという事実は、データ容量を理解する出発点でもあります。

  • 2の4乗 = 16、2の8乗 = 256
  • 2の10乗 = 1024、2の16乗 = 65536
  • 16進数0xFF = 255、0x100 = 256
  • 2進数1010 = 10、16進数A = 10

🔗 同じ分類の他の項目

🧰 関連サービス

🌍 検索エンジンでさらに調べる

ボタンを押すと、そのエンジンでこのキーワードを検索します