[C#] 10進数の数値を16進数の文字列に変換する方法
C#では、10進数の数値を16進数の文字列に変換するために、ToStringメソッド
を使用します。
具体的には、数値に対してToString("X")
を呼び出すことで、16進数の大文字表記の文字列が得られます。
小文字で表記したい場合はToString("x")
を使用します。
例えば、int number = 255;
に対してnumber.ToString("X")
を実行すると、結果は"FF"
となります。
- 10進数を16進数に変換する方法
- 16進数の文字列を整数に変換する方法
- 16進数の文字列を0埋めする方法
- 16進数をバイト配列に変換する方法
- 16進数をカラーコードとして扱う方法
10進数を16進数に変換する方法
C#では、10進数の数値を16進数の文字列に変換するために、主にToStringメソッド
を使用します。
このメソッドを使うことで、簡単に数値の表現を変更することができます。
以下にその方法を詳しく解説します。
ToString(“X”)メソッドの使い方
ToString("X")メソッド
を使用すると、整数を16進数の文字列に変換できます。
引数に"X"
を指定することで、16進数形式で出力されます。
using System;
class Program
{
static void Main()
{
int number = 255; // 10進数の255
string hexString = number.ToString("X"); // 16進数に変換
Console.WriteLine(hexString); // 出力: FF
}
}
FF
大文字と小文字の違い (“X” vs “x”)
ToStringメソッド
の引数には大文字の"X"
と小文字の"x"
があります。
大文字の"X"
は16進数を大文字で表示し、小文字の"x"
は小文字で表示します。
using System;
class Program
{
static void Main()
{
int number = 255; // 10進数の255
string hexUpper = number.ToString("X"); // 大文字の16進数
string hexLower = number.ToString("x"); // 小文字の16進数
Console.WriteLine(hexUpper); // 出力: FF
Console.WriteLine(hexLower); // 出力: ff
}
}
FF
ff
例:整数を16進数に変換する
整数を16進数に変換する基本的な例です。
using System;
class Program
{
static void Main()
{
int number = 1234; // 10進数の1234
string hexString = number.ToString("X"); // 16進数に変換
Console.WriteLine(hexString); // 出力: 4D2
}
}
4D2
例:負の数を16進数に変換する
負の数を16進数に変換する場合も、ToStringメソッド
を使用します。
負の数はそのまま16進数に変換されます。
using System;
class Program
{
static void Main()
{
int number = -1234; // 10進数の-1234
string hexString = number.ToString("X"); // 16進数に変換
Console.WriteLine(hexString); // 出力: FFFFFF4D2
}
}
FFFFFB2E
例:浮動小数点数を16進数に変換する
浮動小数点数を16進数に変換する場合、BitConverterクラス
を使用します。
これにより、浮動小数点数をバイト配列に変換し、その後16進数に変換できます。
using System;
class Program
{
static void Main()
{
float number = 123.45f; // 浮動小数点数
byte[] bytes = BitConverter.GetBytes(number); // バイト配列に変換
string hexString = BitConverter.ToString(bytes).Replace("-", ""); // 16進数に変換
Console.WriteLine(hexString); // 出力: 00000000C8F5C28F
// 16進数をバイト配列に変換(もとに戻す)
byte[] bytes2 = new byte[hexString.Length / 2];
for (int i = 0; i < bytes2.Length; i++)
{
bytes2[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
float number2 = BitConverter.ToSingle(bytes2, 0); // 浮動小数点数に変換
Console.WriteLine(number2); // 出力: 123.45
}
}
66E6F642
123.45
16進数の文字列を10進数に変換する方法
C#では、16進数の文字列を10進数の整数に変換するために、主にConvert.ToInt32メソッド
やint.Parseメソッド
を使用します。
これらのメソッドを使うことで、簡単に数値の表現を変更することができます。
以下にその方法を詳しく解説します。
Convert.ToInt32メソッドの使い方
Convert.ToInt32メソッド
を使用すると、16進数の文字列を10進数の整数に変換できます。
このメソッドは、変換する文字列と基数を指定することができます。
16進数の場合、基数は16です。
using System;
class Program
{
static void Main()
{
string hexString = "FF"; // 16進数の文字列
int number = Convert.ToInt32(hexString, 16); // 10進数に変換
Console.WriteLine(number); // 出力: 255
}
}
255
int.Parseメソッドの使い方
int.Parseメソッド
も、16進数の文字列を10進数の整数に変換するために使用できます。
このメソッドも基数を指定することができ、16進数の場合は基数を16に設定します。
using System;
class Program
{
static void Main()
{
string hexString = "4D2"; // 16進数の文字列
int number = int.Parse(hexString, System.Globalization.NumberStyles.HexNumber); // 10進数に変換
Console.WriteLine(number); // 出力: 1234
}
}
1234
例:16進数文字列を整数に変換する
以下は、16進数の文字列を整数に変換する基本的な例です。
Convert.ToInt32メソッド
とint.Parseメソッド
の両方を使用して、同じ結果を得ることができます。
using System;
class Program
{
static void Main()
{
string hexString1 = "A3"; // 16進数の文字列
string hexString2 = "1F4"; // 16進数の文字列
// Convert.ToInt32メソッドを使用
int number1 = Convert.ToInt32(hexString1, 16); // 10進数に変換
Console.WriteLine(number1); // 出力: 163
// int.Parseメソッドを使用
int number2 = int.Parse(hexString2, System.Globalization.NumberStyles.HexNumber); // 10進数に変換
Console.WriteLine(number2); // 出力: 500
}
}
163
500
応用例
C#では、16進数の文字列をさまざまな形式に変換したり、特定の用途に応じて処理したりすることができます。
以下に、16進数の文字列に関するいくつかの応用例を紹介します。
16進数の文字列を0埋めする方法
16進数の文字列を特定の桁数に0埋めするには、PadLeftメソッド
を使用します。
このメソッドを使うことで、指定した桁数に満たない場合に左側に0を追加できます。
using System;
class Program
{
static void Main()
{
string hexString = "1A"; // 16進数の文字列
string paddedHex = hexString.PadLeft(4, '0'); // 4桁に0埋め
Console.WriteLine(paddedHex); // 出力: 001A
}
}
001A
16進数の文字列をバイト配列に変換する方法
16進数の文字列をバイト配列に変換するには、Convert.FromHexStringメソッド
を使用します。
このメソッドを使うことで、16進数の文字列を簡単にバイト配列に変換できます。
using System;
class Program
{
static void Main()
{
string hexString = "4D2F"; // 16進数の文字列
byte[] byteArray = Convert.FromHexString(hexString); // バイト配列に変換
Console.WriteLine(BitConverter.ToString(byteArray)); // 出力: 4D-2F
}
}
4D-2F
16進数の文字列をカラーコードとして扱う方法
16進数の文字列をカラーコードとして扱う場合、通常はRGB形式で表現されます。
以下の例では、16進数のカラーコードをRGB値に変換します。
using System;
class Program
{
static void Main()
{
string hexColor = "#FF5733"; // 16進数のカラーコード
int r = Convert.ToInt32(hexColor.Substring(1, 2), 16); // 赤
int g = Convert.ToInt32(hexColor.Substring(3, 2), 16); // 緑
int b = Convert.ToInt32(hexColor.Substring(5, 2), 16); // 青
Console.WriteLine($"R: {r}, G: {g}, B: {b}"); // 出力: R: 255, G: 87, B: 51
}
}
R: 255, G: 87, B: 51
16進数の文字列をバイナリに変換する方法
16進数の文字列をバイナリ形式に変換するには、まず16進数を整数に変換し、その後、整数を2進数の文字列に変換します。
以下の例では、16進数の文字列をバイナリ形式に変換します。
using System;
class Program
{
static void Main()
{
string hexString = "1A"; // 16進数の文字列
int number = Convert.ToInt32(hexString, 16); // 10進数に変換
string binaryString = Convert.ToString(number, 2); // 2進数に変換
Console.WriteLine(binaryString); // 出力: 11010
}
}
11010
よくある質問
まとめ
この記事では、C#における10進数と16進数の相互変換方法や、16進数の文字列をさまざまな形式に変換する応用例について詳しく解説しました。
特に、ToStringメソッド
やConvertクラス
を利用した具体的なコード例を通じて、実際のプログラミングに役立つ情報を提供しました。
これを機に、16進数の扱いに関する理解を深め、実際のプロジェクトで活用してみてください。