エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【C#】整数を2進数、8進数、16進数に変換するやり方を解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、C#整数2進数、8進数、16進数にそれぞれ変換するやり方について解説します。

 

前提条件

この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

2進数、8進数、16進数に変換するために使うメソッド

変換するために使うメソッドは、Convert.ToStringメソッドを使います。

ToString(Int16, Int32)

16 ビット符号付き整数の値を、指定した基数での等価の文字列形式に変換します。
public static string ToString (short value, int toBase);

Convert.ToString Method (System) | Microsoft Docsから引用させて頂きました

第1引数に変更したい整数、第2引数に何進数にするのかというものを設定します。

では、実際に使ってみます。

解説で使うC#の概要

ある整数を

  • 2進数
  • 8進数
  • 16進数

それぞれ変更して、コンソールに表示します。

コンソールプロジェクトを作成するやり方は下の記事をご参考ください。

www.tairax.com

C#プログラム

using System;

namespace ConsoleApp1
{
    /// <summary>
    /// 整数を、2進数、8進数、16進数にそれぞれ変換する
    /// </summary>
    class Program
    {
        /// <summary>
        /// メイン
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            int number = 17;
            string binaryNumber = Convert.ToString(number, 2);
            string octalNumber = Convert.ToString(number, 8);
            string hexaDecimal = Convert.ToString(number, 16);

            Console.WriteLine("2進数:" + binaryNumber);
            Console.WriteLine("8進数:" + octalNumber);
            Console.WriteLine("16進数:" + hexaDecimal);
        }
    }
}

実行結果

f:id:Tairax:20190215220326p:plain

2進数:10001
8進数:21
16進数:11
続行するには何かキーを押してください . . .

Convert.ToStringの使い方はこのように使います。
ただ、注意点があります。

注意点

それは、第2引数に指定できるのが281016のみであることです。

例えば、第2引数に7を設定したとします。

using System;

namespace ConsoleApp1
{
    /// <summary>
    /// Convert.ToStringの失敗例
    /// </summary>
    class Program
    {
        /// <summary>
        /// メイン
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            int number = 17;
            string failNumber = Convert.ToString(number, 7);

            Console.WriteLine(failNumber);
        }
    }
}

エラーはでません。
実行してみます。

f:id:Tairax:20190215222137p:plain


ハンドルされていない例外: System.ArgumentException: ベースが無効です。
   場所 System.Convert.ToString(Int32 value, Int32 toBase)
   場所 ConsoleApp1.Program.Main(String[] args) 場所 C:\Users\○○○○\source\re
pos\ConsoleApp1\ConsoleApp1\Program.cs:行 17
続行するには何かキーを押してください . . .

このようにベースが無効であるとエラーが表示されます。

なので、Convert.ToStringメソッドを使うときは、第2引数には281016を設定しましょう。

 

スポンサーリンク

 

まとめ:Convert.ToStringを使ってみよう

以上がConvert.ToStringメソッドを使って、整数を2進数、8進数、16進数に変換するやり方です。

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

ほかにもC#勉強記事を書いてます。
よければご参考ください。

【C#】ある文字を指定した回数だけ連続する文字列を作成するやり方を解説します

【C#】【LINQ】Anyメソッドについて解説します

【C#】コンストラクタからコンストラクタを呼ぶ、コンストラクタ初期化子について解説します