C语言printf如何输出二进制数格式(将十进制数转为二进制输出)

C语言printf如何输出二进制数格式?如何将十进制数按二进制数输出?C语言printf二进制输出字符的格式是什么?C语言可以二进制输出吗?
【C语言printf如何输出二进制数格式(将十进制数转为二进制输出)】C语言printf打印没有提供二进制格式化输出转换说明,需要自定义实现输出二进制数格式,实现的算法主要是使用移位操作符,使用& 与位操作,将1与各位比较提取各位出来,具体的实现算法如下:

void print_bin(int number); void print_bin_simple(int number); int main(void){ int number = 0xAF01BC; print_bin(number); // 完全位二进制数格式输出 print_bin_simple(number); // 去掉前面无效0二进制数格式输出 return 0; }/* * 二进制数格式输出,输出所有位 * 6bit * 011010 * 100000 1< < 5 * & * */ void print_bin(int number){ int bit = sizeof(int)*8; int i; for(i = bit - 1; i >= 0; i--){ int bin = (number & (1 < < i)) >> i; printf("%d", bin); } printf("\n"); }// 二进制数格式输出,输出有效位,过滤掉前面的0位 void print_bin_simple(int number){ int bit = sizeof(int)*8; int i; int status = 0; for(i = bit - 1; i >= 0; i--){ int bin = (number & (1 < < i)) >> i; if(bin == 1) status = 1; if(status == 1) printf("%d", bin); } printf("\n"); }

    推荐阅读