现在,我要做的是:
void print_bits(unsigned int x)
{
int i;
for(i=WORD_SIZE-1; i>=0; i--) {
(x & (1 << i)) ? putchar('1') : putchar('0');
}
printf("\n");
}
同样,拥有一个与单词大小无关的解决方案(在我的示例中,当前设置为32)将是很棒的。
最佳答案
这个怎么样:
void print2Bits(int a) {
char* table[] = {
"00",
"01",
"10",
"11"
};
puts(table[a & 3]);
}
void printByte(int a) {
print2Bits(a >> 6);
print2Bits(a >> 4);
print2Bits(a >> 2);
print2Bits(a);
}
void print32Bits(int a) {
printByte(a >> 24);
printByte(a >> 16);
printByte(a >> 8);
printByte(a);
}
我认为,这是您编写无循环二进制数的结局。
关于c - 有没有一种方法可以在不使用C语言的循环的情况下打印位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25709151/