在C语言中打印所有32位数字序列的函数

在C语言中打印所有32位数字序列的函数,c,binary,numbers,permutation,C,Binary,Numbers,Permutation,很抱歉提出这个问题,但我正在尝试优化一个C函数,该函数打印32位的所有序列,以便序列中的每个数字都是0或1,例如: 00000000000000000000000000 ... 01010101010101010101010101010101 ... 0100000000100000001000000 我确实提出了一个解决方案,但它有3个for循环嵌套在一起,这相当耗时,我想知道是否有可能有一个更简单的算法 谢谢你的帮助 安德烈 大家好,谢谢您的回答:)最后,我在您的帮助下使用了解决方案: vo

很抱歉提出这个问题,但我正在尝试优化一个C函数,该函数打印32位的所有序列,以便序列中的每个数字都是0或1,例如:

00000000000000000000000000 ... 01010101010101010101010101010101 ... 0100000000100000001000000

我确实提出了一个解决方案,但它有3个for循环嵌套在一起,这相当耗时,我想知道是否有可能有一个更简单的算法

谢谢你的帮助

安德烈


大家好,谢谢您的回答:)最后,我在您的帮助下使用了解决方案:

void二元排列(void) {

}

再次感谢


Andrea

您可以使用递归或回溯,它为您省去了嵌套循环的所有痛苦(是的,此函数需要时间运行!) 很好地解释了这一点。
祝你好运

如果看不到您现在拥有的代码,没有人能够回答。
unsigned int x=0;do{printasbinary(x++);}while(x)
printasbinary(unsigned int)
是一个练习。您知道您正在尝试打印1280亿个字符,对吗?不管你怎么做,这都会很费时。大家好,谢谢你的回答:)最后,我根据你的帮助使用了解决方案:谢谢,链接非常有用。
unsigned int i=0;
char str[32];

do{
    itoa(i++, str, 2);

        printf("binary: %s\n", str);
}
while (i);