我可以使用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)
- > 10110
。
答案 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)