.NET TIPS 2進数文字列と16進数文字列を相互に変換するには?デジタルアドバンテージ2003/09/12 |
![]() |
|
.NET Frameworkのクラス・ライブラリには、2進数文字列と16進数文字列とをダイレクトに変換するメソッドはない。しかし、Convertクラス(System名前空間)のstaticなメソッドを利用すれば、2/16進数から数値へ、あるいは数値から2/16進数への変換が行えるため、2進数と16進数を相互に変換することができる。
2/16進数→数値の変換
2/16進数文字列から数値へは、ConvertクラスのToInt32メソッドを使用して変換できる。
int v1 = Convert.ToInt32("11111111", 2);
int v2 = Convert.ToInt32("ff", 16);
この記述では、v1、v2ともにその値は255となる。
ConvertクラスのToInt32メソッドは、「TIPS:文字列を数値に変換するには?」で解説しているように、文字列をint型の値に変換するメソッドだ。パラメータを2つ指定する上記のようなオーバーロードされたバージョンでは、第2パラメータに基数(2、8、16)を指定することにより、2/8/16進数文字列を数値に変換することができる。
Convertクラスには、このような基数を第2パラメータで指定可能なメソッドとして、ToByte、ToInt16、ToInt32、ToInt64、ToSByte、ToUInt16、ToUInt32、ToUINt64、そしてToStringがある。
数値→2/16進数の変換
数値から2/16進数文字列へは、ConvertクラスのToStringメソッドを使用して変換できる。
string binStr = Convert.ToString(255, 2);
string hexStr = Convert.ToString(255, 16);
この記述では、binStは「11111111」、hexStrは「ff」となる。
ConvertクラスのToStringメソッドは、さまざまな型の数値を文字列(10進数)に変換するためのメソッドであるが、ToInt32メソッドと同様に、第2パラメータで基数を指定することにより2/8/16進数文字列への変換が可能だ(この場合、第1パラメータはbyte、short、int、long型(Byte、Int16、Int32、Int64型)のみ)。
次のサンプル・プログラムはこれら2つのメソッドを使用した例である。
|
|
2/16進数の変換を行うC#のサンプル・プログラム(convhex.cs) | |
最後の2つの処理は、ToStringメソッドとToInt32メソッドを組み合わせて2進数と16進数を相互に変換している。
カテゴリ:クラス・ライブラリ 処理対象:文字列 使用ライブラリ:Convertクラス(System名前空間) 関連TIPS:文字列を数値に変換するには? |
|
![]() |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
||
|
||
![]() |