获取数字的n位二进制表示

时间:2012-04-30 10:04:48

标签: c# data-conversion

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

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

它返回一个char字符串“1”

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

我需要它是“01000”

位数(n)是输入。

由于

3 个答案:

答案 0 :(得分:3)

string binary = Convert.ToString(i, 2).PadLeft(5, '0');

答案 1 :(得分:1)

你可以这样做。

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

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

答案 2 :(得分: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。