JavaScriptによる8進数変換の解説

JavaScriptによる8進数変換の解説

はじめに

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

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

JavaScriptにおける8進数表現

よくある間違い

はじめに

8進数(オクタル)は、10進数(デシマル)と並んで数値の表現方法の一つで、基数が8の進数です。コンピュータプログラミングでは、特に古いシステムや低レベルの処理で使われることがありました。JavaScriptでは、数値を8進数に変換する方法を学びましょう。

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

8進数を10進数に変換する方法は、8進数の各桁をその位置に応じた8の累乗に掛け算して合計を求めるというものです。

例えば、8進数の「125」を10進数に変換する場合、次のように計算します:

    125 (8進数) = 1 * 8^2 + 2 * 8^1 + 5 * 8^0
                = 1 * 64 + 2 * 8 + 5 * 1
                = 64 + 16 + 5
                = 85 (10進数)
    

JavaScriptで8進数を10進数に変換するには、次のように記述します:

    let octal = '125'; // 8進数
    let decimal = parseInt(octal, 8); // 10進数に変換
    console.log(decimal); // 85
    

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

逆に、10進数を8進数に変換する場合、10進数を8で割り、その余りを記録していきます。最終的に余りを逆順に並べることで8進数が得られます。

例えば、10進数の「85」を8進数に変換する場合、次のように計算します:

    85 ÷ 8 = 10 余り 5
    10 ÷ 8 = 1 余り 2
    1 ÷ 8 = 0 余り 1
    

よって、85(10進数)は「125」(8進数)となります。

JavaScriptで10進数を8進数に変換するには、次のように記述します:

    let decimal = 85; // 10進数
    let octal = decimal.toString(8); // 8進数に変換
    console.log(octal); // "125"
    

JavaScriptにおける8進数表現

JavaScriptでは、8進数のリテラルは「0o」を前につけて表現することができます。例えば、8進数の「125」をリテラルとして記述する場合は次のようになります:

    let octal = 0o125; // 8進数のリテラル
    console.log(octal); // 85(10進数として表示)
    

このように、JavaScriptでは8進数の数値リテラルを簡単に扱うことができます。

よくある間違い

8進数を扱う際に陥りやすい間違いは、8進数と10進数の違いを理解していないことです。特に、8進数の数値に対して無意識に10進数と同じように計算してしまうと、誤った結果を得てしまいます。

また、JavaScriptで「0o」を忘れて8進数のリテラルをそのまま使用しようとすると、エラーが発生します。例えば、次のようなコードはエラーになります:

    let octal = 0125; // 古い形式、エラーが発生する可能性あり
    console.log(octal);
    

このような誤りを避けるために、「0o」をしっかりと付けて8進数リテラルを記述するようにしましょう。

コメントを残す

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