プログラミング入門

Binary・Hex・Octal を使いこなす!すべての開発者が知るべき数値表現の基本

chmod 755 って数字の意味、なんとなくでしか分かっていない…」「#FF5733 ってどうやって色になるの?」そんなモヤモヤ、ありませんか? 😅

実は、2進数・16進数・8進数は、OSやCPU、ネットワークが「ネイティブに話す言語」です。CS(コンピュータサイエンス)の授業で一瞬だけ出てきて、試験が終わったら忘れた…という方も多いと思います。でも、実際の開発現場では毎日のように顔を出す概念なんですよね。

今回はこれらの数値表現(Number Systems) を、実務コードと一緒にサクッとおさらいしてみましょう! 🚀

🔢 そもそも、なぜ複数の数値表現があるの?

binary code
binary code / Photo by Markus Spiske via Pexels

コンピュータが扱うのは究極的に「0と1」だけです。でも人間がそれをそのまま読むのは大変ですよね。そこで登場するのが次の3つです。

  • 2進数(Binary):コンピュータが直接扱う形式。0と1だけで表現
  • 16進数(Hexadecimal / Hex):2進数を人間が読みやすく圧縮した形式。0〜9+A〜Fを使う
  • 8進数(Octal):主にUnixのパーミッション設定などで登場。0〜7を使う

イメージとしては、「コンピュータ語を人間語に翻訳するための3つの方言」と思ってもらえると分かりやすいです。

🐍 Pythonで変換してみよう

百聞は一見にしかず、Pythonで実際に変換してみましょう。

# 数値「255」を各進数で表現してみる
num = 255

print(bin(num))   # 2進数   → 0b11111111
print(oct(num))   # 8進数   → 0o377
print(hex(num))   # 16進数  → 0xff

# 逆に、各進数の文字列を10進数に戻す
print(int('11111111', 2))  # 2進数 → 255
print(int('377', 8))       # 8進数 → 255
print(int('ff', 16))       # 16進数 → 255

ポイントをまとめるとこんな感じです 👇

  • bin()oct()hex() で一発変換できる
  • int(文字列, 基数) で逆変換(各進数 → 10進数)が可能
  • プレフィックスの 0b(2進数)、0o(8進数)、0x(16進数)も覚えておこう

💡 実務で登場するシーン3選


① chmod 755 のパーミッション設定

chmod 755 の「755」は8進数です。7 = 111(読み書き実行すべて許可)、5 = 101(読み・実行のみ)という2進数のビットフラグになっています。つまり、パーミッションを設定するたびにOctalを使っているんですよね。

② カラーコード #FF5733

Webの色は16進数で表現されています。#FF5733 は「赤=FF(255)、緑=57(87)、青=33(51)」というRGB値そのものです。Hexに慣れると、色を見ただけにRGB値がパッと分かるようになります 🎨

③ ビット演算でのフラグチェック

# 下位4ビットだけを取り出すビットマスク処理
permissions = 0b10110101  # 何らかのフラグ値
mask = 0x0F               # 16進数表記(= 0b00001111)

result = permissions & mask  # AND演算で下位4ビットのみ抽出
print(bin(result))  # → 0b101

ここが重要です ⚡ビット演算と16進数マスクの組み合わせは、組み込みシステムやネットワーク処理で頻繁に登場します。「& 0x0F」のような表記を見たら「下位4ビットを取り出している」と読めるようになると、コードリーディングの速度がグッと上がります。

まとめ

Binary・Hex・Octalは「一度覚えたら終わり」ではなく、日常の開発で何度も出会う基礎知識です。Pythonなら bin()hex()oct()int() を使えば簡単に変換できるので、まずは手を動かして確認してみてください。

数値表現の「むずかしそう」が「なるほど!」に変わると、デバッグや設計の視野が一気に広がりますよ。ぜひ今日から試してみてください 😊

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です