C语言将十进制转换为二进制主要有以下两种方法,涵盖标准库函数和位运算技巧:
一、使用标准库函数 `printf` 或 `sprintf`
`printf` 方法:直接使用 `%b` 格式说明符输出二进制数。
`sprintf` 方法:通过 `sprintf` 将二进制数格式化到字符串中。
二、位运算实现
整数转二进制 - 循环右移法:
通过不断右移并取余数,将余数逆序输出。
- 位掩码法:使用掩码 `0b11111111` 逐位检查,输出为1的位数。
二进制转十进制 - 按权展开法:
通过乘以2取整并累加,实现二进制到十进制的转换。
示例代码
整数转二进制(循环右移法)
```c
include void printBinary(int num) { for (int i = 31; i >= 0; i--) { printf("%d", num & (1 << i)); } } int main() { int num = 10; printf("二进制: "); printBinary(num); return 0; } ```
整数转二进制(位掩码法)
```c
include void printBinary(unsigned int num) { for (int i = 0; i < 32; i++) { if (num & (1 << i)) { printf("1"); } else { printf("0"); } } } int main() { unsigned int num = 10; printf("二进制: "); printBinary(num); return 0; } ``` 注意事项 位运算方法适用于32位整数,若处理更大位数需调整循环范围。 标准库函数更简洁,适合快速开发,位运算适合学习底层原理。