|
.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」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


