数字と文字列にはいろいろ変換方法があるのですが、一覧的に確認できると便利かと思いまとめてみました。
他にもいろいろやり方はありますがこれさえ覚えておけば問題ないと思います。
数値 → 2,8,10,16進数文字列 に変換
数値からN進数の文字列に変換したい場合、各基本型についている ToString() メソッドか Convert.ToString() メソッドを使用します。
元の型 | 変換先 | やり方(1) | やり方(2) |
---|---|---|---|
数値 | 2進数の文字列 | Convert.ToString ( num , 2 ); | |
数値 | 8進数の文字列 | Convert.ToString ( val , 8 ); | |
数値 | 10進数の文字列 | num.ToString ( num ); | Convert.ToString ( num ); |
数値 | 16進数の文字列 | num.ToString ( "x" ); | Convert.ToString ( num , 16 ); |
使用例は以下の通りです。
public static void Foo() { int inum = 3130; // 整数値 → 2進数の文字列に変換 string str2 = Convert.ToString(inum, 2); // > str2 = 110000111010 // 整数値 → 8進数の文字列に変換 string str8 = Convert.ToString(inum, 8); // > str8 = 6072 // 整数値 → 10進数の文字列に変換 string str101 = inum.ToString(); string str102 = Convert.ToString(inum); // > str101 = 3130, str102 = 3130 // 整数値 → 16進数の文字列に変換 string str161 = inum.ToString("X"); // "x"はアルファベット部分が小文字, "X"は大文字となる string str162 = Convert.ToString(inum, 16); // > str161 = C3A, str162 = c3a }
2,8,10,16進数文字列 → 数値 に変換
Convert クラスにある ToXxxx() メソッドで変換できます。例えば int 型に変換したいときは Convert.ToInt32() メソッドを使用します。
元の型 | 変換先 | やり方 |
---|---|---|
2進数の文字列 | int | Convert.ToInt32 ( "110000111010" , 2 ); |
8進数の文字列 | int | Convert.ToInt32 ( "6072" , 8 ); |
10進数の文字列 | int | Convert.ToInt32 ( "3130" ); |
16進数の文字列 | int | Convert.ToInt32 ( "0xFFFF" , 16 ); |
「Convert.ToInt32("0xFFFF", 16);」は文字列の先頭に「0x」が付いていても変換できます。
使用例は以下の通りです。
public static void Foo() { // 文字列を2進数として intに変換 int inum1 = Convert.ToInt32("110000111010", 2); // > inum1 = 3130 // 文字列を8進数として intに変換 int inum2 = Convert.ToInt32("6072", 8); // > inum2 = 3130 // 文字列を10進数として intに変換 int inum3 = Convert.ToInt32("3130"); // > inum3 = 3130 // 先頭に0xが付いた16進数文字列を intに変換 int inum4 = Convert.ToInt32("0xC3A", 16); // > inum4 = 3130 // int 以外にもほぼすべての基本型に変換できる。 // ただし 16 が指定できるオーバーロードが無いものもある byte _b = Convert.ToByte(str, 16); }
短いですが以上です。