C# 扩展Convert.ToString()以填充二进制输出
我可以使用C# 扩展Convert.ToString()以填充二进制输出,c#,C#,我可以使用Convert.ToString将整数转换为二进制表示: int x = 10; string value = Convert.ToString(x, 2); Console.WriteLine(value); 我得到了1100 它甚至可以处理负数,因为我得到了111…0110(32位) 如何扩展此函数,以便提供第三个参数以获得位填充为0(正值)或1(负值)的结果 例如,使用Convert.ToString(10,2,5)-->01100,和Convert.ToString(-10,
Convert.ToString
将整数转换为二进制表示:
int x = 10;
string value = Convert.ToString(x, 2);
Console.WriteLine(value);
我得到了1100
它甚至可以处理负数,因为我得到了111…0110
(32位)
如何扩展此函数,以便提供第三个参数以获得位填充为0(正值)或1(负值)的结果
例如,使用
Convert.ToString(10,2,5)
-->01100
,和Convert.ToString(-10,2,5)
-->10110
您要找的是一个扩展方法:您不能像这样扩展Convert.ToString
函数,因为它是静态的
,但是您可以很容易地使用。PadLeft
:
int x = 10;
string value = Convert.ToString(x, 2).PadLeft(5, '0');
Console.WriteLine(value);
intx=10;
字符串值=Convert.ToString(x,2).PadLeft(5,'0');
控制台写入线(值)代码>
当然,你也可以自由地把它变成你自己的功能。但是您不能将其放入Convert您不能扩展Convert.ToString
函数本身,因为它是静态的
,但是您可以轻松地使用。PadLeft
:
int x = 10;
string value = Convert.ToString(x, 2).PadLeft(5, '0');
Console.WriteLine(value);
intx=10;
字符串值=Convert.ToString(x,2).PadLeft(5,'0');
控制台写入线(值)代码>
当然,你也可以自由地把它变成你自己的功能。但是你不能把它放在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)
此外,不需要仅仅为了约定而传递符号(带疑问),我传递了符号。我将编写自己的扩展名:
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)
此外,不需要仅为约定(带问题)而传递符号。扩展方法不适用于静态类(它们不向类“添加”静态方法)扩展方法不适用于静态类(它们不向类“添加”静态方法)