.NET TIPS 数値←→3〜36進数文字列を相互に変換するには?[C#、VB]デジタルアドバンテージ 一色 政彦2010/01/14 |
|
|
.NET Frameworkでは、数値を2/8/10/16進数文字列に変換するためのConvert.ToStringメソッド(=System名前空間のConvertクラスの静的メソッドToString)が用意されている。また、逆に2/8/10/16進数文字列を数値に変換するためのConvert.ToInt32メソッド(=System名前空間のConvertクラスの静的メソッドToInt32)なども用意されている。
詳しくは「TIPS:2進数文字列と16進数文字列を相互に変換するには?」を参照してほしいが、これらのメソッドの第2パラメータには基数として2/8/10/16は指定できるが、それ以外の基数が設定できない。要するに.NET Frameworkでは、これらの基数を除く、3〜36進数の数値と文字列の相互変換を行う機能が提供されていない(※なお、36までにしている理由は、0〜9、A〜Zの全36文字で表現可能な最大の基数だからである)。
そこで本稿では、数値←→3〜36進数文字列を相互に変換するRadixConvertクラスを提供し、その使い方を説明する。RadixConvertクラスは下記のリンクからダウンロードできる。
●n進数の数値と文字列の相互変換を行うRadixConvertクラスの使い方
RadixConvertクラスの基本的な使い方は、前述のConvert.ToStringメソッドおよびConvert.ToInt32メソッドとほぼ同じである。具体的には下記のメソッドが提供されている。
RadixConvert.ToInt16メソッド
RadixConvert.ToUInt16メソッド
RadixConvert.ToInt32メソッド
RadixConvert.ToUInt32メソッド
RadixConvert.ToInt64メソッド
RadixConvert.ToUInt64メソッド
RadixConvert.ToDecimalメソッド
・第2パラメータ(Int32型):基数。
・戻り値(Int16/UInt16/Int32/UInt32/Int64/UInt64/Decimal型):いずれかの型の数値。
RadixConvert.ToStringメソッド
・第2パラメータ(Int32型):基数。
・第3パラメータ(Boolean型):11進数以降での表現文字“A”〜“Z”を大文字にする場合はtrue、小文字にする場合はfalseを指定する。
・戻り値(String型):n進数の文字列。
いずれも第2パラメータの基数に指定できるのは「3」〜「36」で、2/8/10/16を指定するとエラーになる。これらの進数を扱いたい場合は、前述のConvertクラスを利用してほしい。
次のコードは、RadixConvertクラスの利用例である。
|
||
RadixConvertクラスの利用例(上:C#、下:VB) |
RadixConvert.ToUInt32メソッドなどの第1パラメータに指定するn進数文字列には、スペースなどのn進数文字列を構成する文字以外のものが含まれているとエラーになるので注意してほしい。
カテゴリ:クラス・ライブラリ 処理対象:文字列 使用ライブラリ:Convertクラス(System名前空間) 関連TIPS:2進数文字列と16進数文字列を相互に変換するには? |
|
「.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|