簡體   English   中英

擴展Convert.ToString()以填充二進制輸出

[英]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) -> 01100Convert.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM