C语言十进制转二进制
时间: 2024-09-23 09:07:49 浏览: 44
在C语言中,将十进制转换成二进制可以使用标准库函数`itoa()`或者手动通过循环进行除2取余的操作。以下是两种常见的方法:
1. **使用`itoa()`函数** (仅适用于支持该函数的环境):
```c
#include <stdio.h>
#include <stdlib.h>
void dec_to_bin(int decimal) {
char binary[32]; // 预计最大位数是31位(int类型的二进制表示)
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2 + '0'; // 加上'0'是因为我们想得到字符形式的二进制数字
decimal /= 2; // 除以2取整
i++;
}
if (binary[i] == '\0') { // 如果第一位是0,需要补前导零
binary[i - 1] = '0';
}
binary[i] = '\0'; // 添加字符串结束符
printf("十进制 %d 的二进制表示为: %s\n", decimal, binary);
}
int main() {
int num = 42;
dec_to_bin(num);
return 0;
}
```
2. **手动转换(位运算)**:
```c
void dec_to_bin(int decimal) {
int binary[32];
int i = 0;
while (decimal > 0) {
binary[i] = decimal & 1;
decimal >>= 1; // 右移一位相当于除以2并向下取整
i++;
}
binary[i] = '\0';
for (i = 0; i < sizeof(binary); i++) {
printf("%d", binary[i]);
}
printf("\n");
}
int main() {
int num = 42;
dec_to_bin(num);
return 0;
}
```
以上两种方法都会打印出给定十进制数的二进制表示。
阅读全文