十进制转为二进制c语言
时间: 2023-09-15 08:18:02 浏览: 119
可以使用以下代码将一个十进制数转换成二进制:
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32], i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal = decimal / 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binary[j]);
}
int main() {
int decimal = 42;
printf("Decimal: %d\nBinary: ", decimal);
decimalToBinary(decimal);
return 0;
}
```
在上面的代码中,`decimalToBinary()`函数将一个十进制数转换成二进制并打印输出。首先,将十进制数除以2,直到商为0为止,每次得到的余数都存储在一个数组中。最后,按照从高位到低位的顺序输出数组中的元素。
相关问题
c语言利用递归函数将十进制转为二进制
在C语言中,可以使用递归函数将十进制数转换为二进制数。基本思路是不断除以2,并记录余数,直到商为0为止。以下是简单的递归函数示例:
```c
#include <stdio.h>
// 递归函数,将十进制整数转换为二进制字符串
void decimalToBinary(int n, char* binary) {
if (n == 0) { // 当商为0时结束递归
binary[0] = '\0'; // 终止字符串并添加空字符
return;
}
// 获取当前位的数值
int remainder = n % 2;
binary(strlen(binary)) = '0' + remainder; // 将余数转换为字符并添加到结果字符串
// 递归处理前一位
decimalToBinary(n / 2, binary);
}
int main() {
int decimalNumber;
printf("请输入一个十进制数: ");
scanf("%d", &decimalNumber);
// 为结果分配空间
char binaryNum[32]; // 预计最大16位二进制数
decimalToBinary(decimalNumber, binaryNum);
printf("二进制形式为: %s\n", binaryNum); // 输出转换后的二进制数
C语言程序中如何将十进制转为二进制
在C语言中,你可以通过循环和位操作来将十进制数转换为二进制数。这里有一个简单的示例,使用了`do...while`循环和位运算符`&`来逐位检查并设置结果:
```c
#include <stdio.h>
#include <limits.h>
void dec_to_bin(int num) {
unsigned char binary[CHAR_BIT + 1]; // 至少需要CHAR_BIT位来存储一个整数
int i = 0;
do {
binary[i] = num & 1; // 取最低位
num >>= 1; // 右移一位
i++;
} while (num);
// 输出二进制数,从低位向高位添加前导零
for (i = CHAR_BIT - 1; i >= 0; i--) {
printf(binary[i] ? "1" : "0");
}
}
int main() {
int decimal = 42;
printf("Decimal number %d in binary is ", decimal);
dec_to_bin(decimal);
printf("\n");
return 0;
}
阅读全文