-1

我已经尝试过这种方式来获取 C# 中的二进制表示

int i = 1;
string binary = Convert.ToString(i, 2);

它返回单个字符字符串“1”

我需要一个数字字符串假设数字是 8 ni 想要 5 位二进制表示,

我需要它是“01000”

位数(n)是输入。

谢谢

4

3 回答 3

3
string binary = Convert.ToString(i, 2).PadLeft(5, '0');
于 2012-04-30T10:08:49.293 回答
1

你可以这样做。

string str = Convert.ToString(8, 2).PadLeft(5, '0');

PadLeft 用于将 0 放在表达式的左侧,这里我们给出 5 是数字的总宽度。第二个参数是当数字小于 5 个字符时放在左边的字符

于 2012-04-30T10:11:03.430 回答
0

滚动你自己,你可以使用这样的东西(未经测试,但我认为这应该可行):

int i = 8; // your number
int noZeros = 5;
StringBuilder sb = new StringBuilder();
while(i != 0 && noZeros > 0){
    if(i & 1 != 0){ sb.Insert(0, "1"); }
    else { sb.Insert(0, "0"); }
    i = i >> 1;
    noZeros --;
}

string binary = sb.ToString();

这应该适用于任何 int。

于 2012-04-30T10:26:23.893 回答