2012-03-04 6 views
1

パッドバイナリ出力にConvert.ToStringを()拡張Iは、そのバイナリ表現に整数に変換するConvert.ToStringを使用することができます。

int x = 10; 
string value = Convert.ToString(x, 2); 
Console.WriteLine(value); 

私は1100を得ます。

111...0110(32ビット)となるので、負の数も処理できます。

int x = -10; 
string value = Convert.ToString(x, 2); 
Console.WriteLine(value); 

どのようにI 0(正の値)または1(負の値)で満たされたビットを有する結果を取得する第三のパラメータを与えることができるように、この機能を拡張することができますか?

たとえば、Convert.ToString(10, 2, 5) - >01100、およびConvert.ToString(-10, 2, 5) - >10110です。

答えて

1

は、私は自分の拡張子を記述します。

1

それはstaticだからあなたは、などのConvert.ToString機能を拡張することはできませんが、簡単にだけ.PadLeftを使用することができます。

int x = 10; 
string value = Convert.ToString(x, 2).PadLeft(5, '0'); 
Console.WriteLine(value);

そして、もちろん、あなた自身の機能にそれを作ることは自由です。しかし、それをConvertの中に入れることはできません。

public static class ConvertEx 
{ 
    public static string ToStringEx(this int input, int baseVal, int sign) 
    { 
     var result = sign.ToString(); 
     result += Convert.ToString(input, baseVal); 
     return result; 
    } 
} 

呼び出し、それを::

(-10).ToStringEx(2,1) 

はまた、私はそれを渡す(質問を)大会のためだけに署名合格する必要はありません

+0

Downvote理由、誰ですか? – Ryan

関連する問題