将十进制数转换为二进制数,二进制数由字符数组表示 c语言
时间: 2024-10-10 07:04:43 浏览: 31
在C语言中,将十进制数转换为二进制数通常会使用循环和位操作。这里是一个简单的函数示例,它接收一个整数作为输入,并将其转换为二进制字符串:
```c
#include <stdio.h>
#include <string.h>
// Function to convert decimal number to binary string
char* decimalToBinary(int num) {
static char bin[50]; // 预先分配空间以存储结果
int i = sizeof(bin) - 1;
while (num > 0) {
bin[i] = num % 2 + '0'; // 余数+0(转换为字符)
num /= 2; // 向右移除最低位
i--;
}
if (bin[0] == '0') {
bin[0] = '\0'; // 如果所有位都是0,删除首位的'0'
} else {
bin[i + 1] = '\0'; // 添加终止符
}
return bin;
}
int main() {
int decimalNum = 42;
char* binaryStr = decimalToBinary(decimalNum);
printf("Decimal %d in binary is %s\n", decimalNum, binaryStr);
free(binaryStr); // 记得释放动态分配的空间
return 0;
}
```
在这个例子中,`decimalToBinary` 函数通过不断地对输入数字求余数并除以2,然后把余数(0 或 1)添加到结果字符串的前端,直到数字变为0为止。最后,返回的结果字符串就是对应的二进制形式。
阅读全文