将Convert.ToString()扩展为填充二进制输出

时间:2012-03-04 00:47:04

标签: c#

我可以使用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) - > 01100Convert.ToString(-10, 2, 5) - > 10110

3 个答案:

答案 0 :(得分:1)

您无法扩展Convert.ToString功能,因为它是static,但您可以轻松使用.PadLeft

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

当然,随意将它变成你自己的功能。但你不能把它放在Convert里面。

答案 1 :(得分:1)

我会写自己的扩展名:

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)

此外,没有必要仅仅为了约定传递符号(有问题)我传递它。

答案 2 :(得分:-1)