[英]Extend Convert.ToString() to pad binary output
我可以使用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);
如何擴展此功能,以便可以給第三個參數以0(正值)或1(負值)填充的位得到結果?
例如,使用Convert.ToString(10, 2, 5)
01100
Convert.ToString(10, 2, 5)
-> 01100
和Convert.ToString(-10, 2, 5)
01100
Convert.ToString(-10, 2, 5)
-> 10110
。
您不能像這樣擴展Convert.ToString
函數,因為它是static
,但是您可以輕松地使用.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)
同樣也沒有必要僅出於約定(帶有問題)通過標志。
您正在尋找的是一種擴展方法: http : //msdn.microsoft.com/zh-cn/library/bb383977.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.