如何生成所有可能的 n 位二进制数?

How to generate all possible n-bits binary numbers?

如何生成所有可能的二进制数,如下所示:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111


List<int> GetAllPossibleBinaryNumbers(int length) {
}

在上面 GetAllPossibleBinaryNumbers 接受 length 作为位数,returns 所有可能的二进制值。

计算有多少个数字(即2^n),从0开始循环,在2^n - 1结束。

int length = 4;
int numbers = 1 << length; // equivalent of 2^n
for(int i=0; i<numbers; i++)
{
    string binary = Convert.ToString(i, 2);
    string leading_zeroes = "00000000".Substring(0,length-binary.Length);
    Console.WriteLine(leading_zeroes + binary);
}