c语言中如何把输入的数字从十进制变成二进制
时间: 2024-11-03 09:23:09 浏览: 35
在C语言中,将十进制整数转换为二进制字符串,可以使用内置函数`itoa()`(integer to ASCII),但这不是标准库的一部分,所以通常会使用自定义函数或者第三方库来实现。这里提供一种手动的方法,利用位运算符和数组来完成:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数将十进制转二进制
void dec_to_bin(int num, char bin[50]) {
int i = 0;
while (num > 0) {
bin[i] = num % 2 + '0'; // 余数加0变为字符
num /= 2; // 向右移除最低位
i++;
}
bin[i] = '\0'; // 添加结束符
// 如果最高位是0,可以在前面添加0,例如:0101
if (bin[0] == '0' && i > 1) {
memmove(bin+1, bin, i); // 移动字符串一位
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
char binary[50]; // 存储二进制结果
dec_to_bin(decimal, binary);
printf("Binary representation: %s\n", binary);
return 0;
}
```
这个程序首先读取用户输入的十进制数,然后通过不断取余并存储每一位的结果到数组中,最后添加终止符。如果首位是0,就移动数组元素以去掉前导零。
阅读全文
相关推荐


















