数値を16進数 8進数 2進数表記の文字列に変換する - C#

C#で数値を16進数や8進数、2進数の文字列表記に変換するコードを紹介します。

概要

2,8,16の各進数表記に変換する場合は、Convert.ToString() メソッドを用います。第一引数に変換元の値のみを与えた場合は、10進数の表記として変換しますが、第二引数に基数を与えた場合は、与えた基数の進数表記に変換します。ただし、基数は2,8,10,16のどれかである必要があります。10進数への変換についてはこちらの記事を参照してください。

16進表記への変換

16進数へ変換する場合は
Convert.ToString((値),16);
とします。
補足
16進数表記へ変換する場合は、Format()メソッドを用いた方法もあります。Formatを利用した変換方法はこちらの記事を参照してください。

8進表記への変換

16進数へ変換する場合は
Convert.ToString((値),8);
とします。

2進表記への変換

16進数へ変換する場合は
Convert.ToString((値),2);
とします。

サンプルプログラム

UI

下図のUIを作成します。ボタンが4つ配置されていますが、一番左のボタンは今回使用しません。

コード

以下のコードを記述します。
[16進数表示]ボタンがbutton2, [8進数表示]ボタンがbutton3, [2進数表示]ボタンがbutton4 です。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace NumericFormatDemo
{
  public partial class FormNDecimal : Form
  {
    public FormNDecimal()
    {
      InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      int value = 50219;
      textBox1.Text += Convert.ToString(value, 16);
      
    }

    private void button3_Click(object sender, EventArgs e)
    {
      int value = 50219;
      textBox1.Text += Convert.ToString(value, 8);

    }

    private void button4_Click(object sender, EventArgs e)
    {
      int value = 50219;
      textBox1.Text += Convert.ToString(value, 2);

    }
  }
}

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[16進数表示]ボタンをクリックします。50129を16進表記した"c42b"がテキストボックスに表示されます。


[8進数表示]ボタンをクリックします。50129を8進表記した"142053"がテキストボックスに表示されます。


[2進数表示]ボタンをクリックします。50129を2進表記した"1100010000101011"がテキストボックスに表示されます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2017-09-04
作成日: 2014-08-20
iPentec all rights reserverd.