C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で10進数を8進数に変換する方法をわかりやすく解説

C#プログラミングにおいて、10進数の値を8進数に変換したい場面は少なくありません。本記事では、whileループと剰余演算を使った基本的な変換方法を、サンプルコードとともにわかりやすく解説します。

10進数から8進数への変換の仕組み

10進数を8進数に変換するには、以下の手順で処理を行います。

  1. 対象となる10進数の値に対してwhileループを実行し、8で割った余り(剰余)を8進数用の配列に格納します。
  2. 次に、その数値を8で割り、商を新たな対象の値として処理を繰り返します。
  3. 数値が0になった時点でループを終了し、格納した余りを逆順に出力すると、それが8進数表現となります。

変換処理のコア部分

変換の中心となる処理は以下の通りです。dec % 8 で余りを求めて配列に保存し、dec / 8 で数値を更新しています。

while (dec != 0) {
    oct[i] = dec % 8;
    dec = dec / 8;
    i++;
}

完全なサンプルコード

それでは、実際に動作する完全なコードを見てみましょう。この例では、10進数の「12」を8進数に変換しています。実行結果は「14」と表示されます。

Example

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {

            int []oct = new int[50];

            // 変換対象の10進数
            int dec = 12;

            int i = 0;
            while (dec != 0) {
                oct[i] = dec % 8;
                dec = dec / 8;
                i++;
            }

            // 余りを逆順に出力して8進数を完成させる
            for (int j = i - 1; j >= 0; j--)
                Console.Write(oct[j]);

            Console.ReadKey();
        }
    }
}

コードのポイント

  • 剰余の格納: dec % 8 の計算結果が、下の桁から順に配列へ保存されます。
  • 逆順出力: 余りは下位桁から求まるため、出力時には配列を後ろから前に向かって走査しています。
  • 終了条件: dec が 0 になった時点で変換が完了します。

この方法は、C#における基数変換の基本を理解するのに最適なアプローチです。Convert.ToString(12, 8) のような標準ライブラリを使えば1行で変換できますが、アルゴリズムの仕組みを学ぶうえで、この手動実装は非常に有益です。

  1. MySQLのUNHEX()に相当するPHP関数とは?hex2bin()の使い方を解説

    PHPにおけるMySQLのUNHEX()相当の関数MySQLのUNHEX()関数と同じ処理をPHPで行いたい場合は、hex2bin()関数を使用します。この関数は、16進数形式の文字列をバイナリデータ(元の文字列)に変換するもので、まさにMySQLのUNHEX()に相当する機能を持っています。hex2bin()の基本構文構文は以下の通りです。$anyVariableName = hex2bin(yourHexadecimalValue);引数には16進数の文字列を指定し、戻り値として変換後のバイナリデータが返されます。PHPでの実装例実際にhex2bin()を使用したサンプルコードを見てみまし

  2. MatplotlibでMATLABのsurf(x, y, z, c)と同じ効果を実現する方法

    MATLABの surf(x, y, z, c) と同じような3DサーフェスプロットをMatplotlibで描画する方法を、具体例を通して解説します。手順は以下の通りです。図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。新しい図を作成するか、既存の図をアクティブにします。サブプロット配置の一部として、図に ax(3D軸)を追加します。Numpyを使用して r、u、v、x、y、z のデータポイントを作成します。サーフェスプロットを作成します。図を表示するには、show() メソッドを使用します。コード例import matplotlib.pyplot as plt