10進数から8進数への変換

8で割る繰り返し除算を使って10進数を8進数に変換。ステップごとの実例、実用的なヒント、Unix ファイルパーミッションとの関連を解説します。

Decimal (Base 10)Octal (Base 8)Conversion

詳細な説明

10進数から8進数への変換は、他の基数変換と同じ繰り返し除算のアプローチに従いますが、各ステップで8で割ります。すべての余りは 0-7 の範囲なので、文字への置換は不要です。

ステップごとの例 --- 493 を8進数に変換:

  1. 493 ÷ 8: 商 = 61, 余り = 5
  2. 61 ÷ 8: 商 = 7, 余り = 5
  3. 7 ÷ 8: 商 = 0, 余り = 7

余りを下から上に読みます: 755。したがって 493₁₀ = 755₈ です。

興味深い関連: 10進数の 493 は chmod 755 のパーミッション値で、Unix で最もよく使われるパーミッション設定です。これは、8進数が3ビットのパーミッションフィールドの自然なグループ化を提供することを示しています。

引き算方式:

8のべき乗に近い数値の場合、引き算の方が速いことがあります:

  • 8のべき乗: 1, 8, 64, 512, 4096
  • 493 = 7×64 + 5×8 + 5×1 = 755₈

パーミッションでよく使う10進数から8進数への変換:

10進数 8進数 パーミッションの意味
511 777 全員に rwx
493 755 rwxr-xr-x
420 644 rw-r--r--
448 700 rwx------
292 444 r--r--r--

プログラミングでの利用:

JavaScript では (493).toString(8)"755" を返します。Python では oct(493)"0o755" を返します。シェルスクリプトを書く際には、システムコールに正しいパーミッションマスクを渡すために、10進数の値を8進数に変換する必要がしばしばあります。この変換を理解することで、ファイルやプロセスに適切なアクセス制御を設定できます。

ユースケース

DevOps エンジニアは、デプロイ先のサーバーで正確なファイルパーミッションを設定する必要がある Infrastructure as Code スクリプトを書く際に、10進数のパーミッション値を8進数に変換します。

Try It — Number Base Converter

フルツールを開く