C#で16進文字列を16進数値に変換する方法
C#では、「7D」のような16進表記の文字列を簡単に数値へ変換できます。この記事では、Convert.ToSByte()メソッドとConvert.ToInt32()メソッドを使った2つの代表的な方法を、サンプルコード付きで解説します。
方法1:Convert.ToSByte()を使う
まず、変換対象となる16進文字列を設定します。
string str = "7D";
次に、Convert.ToSByte()メソッドの第2引数に基数「16」を指定して呼び出すことで、16進文字列を数値に変換できます。
Console.WriteLine(Convert.ToSByte(str, 16));
完全なコードは以下の通りです。
サンプルコード
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
string str = "7D";
Console.WriteLine(Convert.ToSByte(str, 16));
}
}
}
出力結果
125
ToSByte()は符号付きバイト型(-128〜127)に変換するため、扱える値の範囲が狭い点に注意してください。範囲外の値を指定すると例外が発生します。
方法2:Convert.ToInt32()を使う
より汎用的なのが、Convert.ToInt32()メソッドを使う方法です。こちらも第2引数に基数「16」を指定します。
サンプルコード
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
string str = "7D";
Console.WriteLine(Convert.ToInt32(str, 16));
}
}
}
出力結果
125
「7D」は10進数で125に相当するため、どちらの方法でも同じ結果が得られます。
まとめ
16進文字列を数値に変換するには、Convertクラスの各メソッドに基数16を指定します。小さな値であればToSByte()、通常はより広い範囲を扱えるToInt32()を使うのがおすすめです。また、int.Parse(str, NumberStyles.HexNumber)を使う方法もあるので、用途に応じて使い分けるとよいでしょう。
-
【JavaScript】ゼロを含む文字列を数値に変換する方法をわかりやすく解説
JavaScriptでは、ドット(.)やゼロを含む文字列を数値として扱いたい場面があります。例えば、次のような文字列があったとします。var stringValue="453.000.00.00.0000";このようにゼロや区切り文字を含む文字列をそのまま数値変換しようとすると、意図した結果になりません。そこで、replace()メソッドで不要なドットを取り除き、parseInt()で整数に変換するという2段階の処理を行います。var numberValue = parseInt(stringValue.replace(/\./gm, ''));コード全体の
-
【Android開発】カラー整数(int)を16進数カラーコード文字列に変換する方法
Androidアプリ開発では、色情報がint型の整数値として扱われることが多く、これを「#FF5733」のような16進数のカラーコード文字列に変換したいケースがあります。本記事では、Integer.toHexString()メソッドを使ってカラー整数を16進文字列に変換する方法を、実際のサンプルプロジェクトとともにわかりやすく解説します。変換の仕組みAndroidでは、色はARGB形式(アルファ・赤・緑・青)の32ビット整数として表現されます。そのため、-16895234のような負の値も有効なカラー整数です。Integer.toHexString(int)で16進文字列に変換した後、先頭2桁は