在C语言中输出二进制数主要有以下三种方法,涵盖标准库函数、位操作和文件操作:
一、使用标准库函数 `itoa`(需包含头文件 ` ```c include int main() { int num = 10; char binary; itoa(num, binary, 2); printf("二进制形式: %sn", binary); return 0; } ``` 说明:`itoa` 函数将十进制数转换为指定进制的字符串,`radix=2` 表示二进制。注意该函数在部分编译器中可能不兼容,建议使用其他方法作为替代。 二、通过位操作实现 ```c include include void printBinary(uint32_t num) { for (int i = 31; i >= 0; i--) { printf("%d", (num >> i) & 1); } printf("n"); } int main() { uint32_t num = 42; printf("二进制形式: "); printBinary(num); return 0; } ``` 说明: 通过右移操作逐位检查最低位是否为1,结合位与运算输出二进制字符串。 ```c include include void ShortDivOutputBin(uint32_t input) { uint8_t temp = {0}; int i = 0; printf("短除法得到的二进制为: "); while (input) { temp[i++] = input % 2; input >>= 1; } for (int j = i - 1; j >= 0; j--) { printf("%d", temp[j]); } printf("n"); } int main() { uint32_t num = 42; ShortDivOutputBin(num); return 0; } ``` 说明: 通过短除法将数字转换为二进制,结果存储在数组中后逆序输出。 三、文件输出(以二进制形式写入) ```c include include int main() { uint32_t data[] = {1, 2, 3, 4, 5}; FILE *fp = fopen("output.bin", "wb"); if (fp == NULL) { printf("Error opening filen"); return 1; } fwrite(data, sizeof(int), 5, fp); fclose(fp); return 0; } ``` 说明 总结 标准库函数:`itoa` 简单易用,但兼容性有限。 位操作:灵活高效,推荐使用位移和条件判断或短除法实现。 文件操作:适用于需要将二进制数据持久化存储的场景。逐位打印法
短除法法