私たちは10進数で数を数えるが、コンピュータは2進数で考える。その間を取り持つのが16進数であり、データをテキストに変換するBase64である。#FF5733というカラーコードも、UUIDの長い文字列も、すべては数の表現方法の違いに過ぎない。

基数 2進数 16進数 Base64

基数とは

基数(radix, base)とは、位取り記数法で使う数字の種類の数である。私たちが普段使う10進数は基数10、コンピュータの2進数は基数2、16進数は基数16である。

位取り記数法

n進数の各桁は n のべき乗で重み付けされる。

10進数 234 = 2×10² + 3×10¹ + 4×10⁰

2進数 1101 = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13(10進)

主要な基数

基数 名称 使用する数字 用途
2 2進数(binary) 0, 1 コンピュータ内部、ビット演算
8 8進数(octal) 0-7 Unix権限(chmod 755)
10 10進数(decimal) 0-9 人間の日常使用
16 16進数(hexadecimal) 0-9, A-F カラーコード、メモリアドレス
64 Base64 A-Z, a-z, 0-9, +, / バイナリのテキスト変換

16進数

16進数は2進数4桁(4ビット)を1桁で表現できるため、バイナリデータの可読性を高める。

10進2進16進 10進2進16進
000000810008
100011910019
200102101010A
300113111011B
401004121100C
501015131101D
601106141110E
701117151111F

カラーコード

#FF5733 は RGB を16進数で表現したもの。

FF = 255(赤)、57 = 87(緑)、33 = 51(青)

Base64

Base64は、バイナリデータをASCII文字列に変換するエンコーディング方式。3バイト(24ビット)を4文字(6ビット×4)に変換する。

Base64の用途

・メール添付ファイル(MIME)

・Data URI(画像の埋め込み)

・JWT(JSON Web Token)

・APIでのバイナリデータ送受信

注意:Base64は暗号化ではない。単なるエンコーディングであり、誰でもデコードできる。

実務での応用

WEB開発での応用

カラーコード:CSS、デザインツールでの色指定。

UUID:128ビットの識別子を16進数32桁(+ハイフン)で表現。

URLエンコーディング:%20(スペース)などの16進表記。

Base64画像:小さな画像をHTMLに直接埋め込む。

AI/MLでの応用

ハッシュ値:SHA-256などの出力は16進数で表示される。

モデルのシリアライズ:バイナリモデルのBase64変換。

特徴量ハッシング:文字列を数値に変換する際の中間表現。

深掘りリンク