基数変換
2進数、8進数、10進数、16進数など、様々な基数間で変換します。
数値(10) → 2進数 (基数2)
利用可能な文字
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0-9, A-Z (A=10, B=11, ..., Z=35)
2進数 (基数2)
文字: 0, 1
コンピュータの基本言語
例: 1010₂ = 10₁₀
8進数 (基数8)
文字: 0-7
Unixのパーミッションで使用
例: 12₈ = 10₁₀
10進数 (基数10)
文字: 0-9
日常生活で使用
例: 10₁₀
16進数 (基数16)
文字: 0-9, A-F
カラーコード、メモリアドレス
例: A₁₆ = 10₁₀
変換方法
他の基数 → 10進数: 各桁に基数の対応するべき乗を掛けて合計する
10進数 → 他の基数: 目的の基数で割り、余りを逆順に並べる
数体系の歴史的発展
数体系は人類の文明とともに進化してきました。古代バビロニアの60進数、マヤの20進数から、現在の10進数まで、各文明はそれぞれのニーズに合った数体系を開発してきました。
古代文明の数体系
- • バビロニアの60進数: 時間と角度の測定の起源
- • エジプトの10進数: ヒエログリフに基づく数体系
- • マヤの20進数: 指とつま先に基づく
- • ローマ数字: 加算表記法
現代の数体系の応用
- • 10進数: 日常生活の標準
- • 2進数: コンピュータの基本言語
- • 16進数: プログラミングとメモリアドレス
- • 8進数: Unixパーミッションシステム
コンピュータ科学における数体系
2進数 (基数2)
原理: 0と1のみを使用
用途: CPU、メモリ、論理回路
利点: 電気信号で実装が容易
例: 1010₂ = 10₁₀
応用: デジタル通信、データストレージ
16進数 (基数16)
原理: 0-9、A-Fを使用
用途: メモリアドレス、カラーコード
利点: 2進数をコンパクトに表現
例: FF₁₆ = 255₁₀
応用: Web開発、システムプログラミング
8進数 (基数8)
原理: 0-7を使用
用途: Unixファイルパーミッション
利点: 3ビットをグループ化
例: 755₈ = 493₁₀
応用: システム管理、セキュリティ設定
プログラミングにおける数体系
実世界の例
カラーコード: #FF0000 (赤)
メモリアドレス: 0x7FFF5FBFF5B0
ファイルパーミッション: chmod 755 (rwxr-xr-x)
ビット演算: 0b1010 & 0b1100
ネットワーク: IPアドレスサブネットマスク
デバッグと最適化
メモリダンプ: メモリ内容を16進数で確認
ビットフラグ: 状態を2進数で管理
ハッシュ値: チェックサムを16進数で表現
暗号化: バイトを16進数で処理
圧縮: ビットレベルでデータを操作
基数変換の数学的原理
位取り記数法
各桁の値は基数のべき乗によって決定されます。
1010₂ = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 10₁₀
変換アルゴリズム
10進数 → n進数
- 1. 10進数をnで割る
- 2. 余りを記録する
- 3. 商が0になるまで繰り返す
- 4. 余りを逆順に並べる
n進数 → 10進数
- 1. 各桁に基数のべき乗を掛ける
- 2. すべての値を合計する
- 3. 結果が10進数値となる
数体系の実用的な応用
Web開発
- • CSSカラーコード (#RGB, #RRGGBB)
- • URLエンコーディング (%20, %3Aなど)
- • Base64エンコーディング (メール、画像)
- • Unicode文字コード (U+0041)
システム管理
- • ファイルパーミッション設定 (chmod 755)
- • ネットワーク設定 (サブネットマスク)
- • メモリアドレス分析
- • ログファイル分析
💻 実践的なヒント
- • 開発者ツール: ブラウザの開発者ツールで16進数のカラーコードを直接確認できます。
- • 計算機の使用: プログラマー向け計算機を使用して、簡単に基数変換できます。
- • ビット演算: 2進数を理解することで、ビット演算子(&, |, ^, ~)を効果的に使用できます。
- • メモリ最適化: 数体系を理解することで、メモリ使用量を最適化できます。