用c语言和函数调用将十进制数转换成二进制数
时间: 2024-05-12 13:16:30 浏览: 104
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32];
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("Binary equivalent: ");
decimalToBinary(decimal);
return 0;
}
```
使用函数`decimalToBinary`将十进制数转换成二进制数,并在`main`函数中调用该函数。
相关问题
C语言中编写一个函数DecToBin(intn,charb[]),该函数用于将十进制整数n转换 为二进制,转换结果以字符串形式存储于字符数组b中。在main函数中,输入一个整数n, 调用DecToBin函数,将十进制整数n转换并输出相应的二进制数。
好的,我来解答这个问题。
首先,我们需要了解将十进制整数转换为二进制的方法。一种常用的方法是“除2取余法”。具体步骤如下:
1. 将十进制整数不断除以2,直到商为0为止,每次记录下余数。
2. 将记录的余数倒序排列,即为该十进制整数的二进制表示。
根据这个方法,我们可以编写一个函数 `DecToBin` 来实现将十进制整数转换为二进制字符串的功能。
```c
void DecToBin(int n, char b[]) {
int i = 0;
while (n > 0) {
b[i] = n % 2 + '0';
n /= 2;
i++;
}
b[i] = '\0';
// 将字符串倒序排列
int len = strlen(b);
for (int j = 0; j < len / 2; j++) {
char temp = b[j];
b[j] = b[len - j - 1];
b[len - j - 1] = temp;
}
}
```
这个函数接受两个参数,一个是十进制整数 `n`,一个是字符数组 `b`,用于存储二进制字符串。在函数中,我们使用了一个 `while` 循环,将 `n` 不断除以2并记录余数,直到商为0为止。然后将记录的余数倒序排列,即可得到二进制字符串。最后,我们在字符串末尾加上一个空字符,表示字符串的结束。
在 `main` 函数中,我们可以输入一个整数 `n`,调用 `DecToBin` 函数,将十进制整数 `n` 转换为二进制字符串,并输出。
```c
int main() {
int n;
char b[100];
printf("请输入一个整数:");
scanf("%d", &n);
DecToBin(n, b);
printf("二进制数为:%s\n", b);
return 0;
}
```
这样,我们就完成了将十进制整数转换为二进制字符串的功能。完整的代码如下:
C语言代码中如何将十进制转换为二进制
在C语言中,可以使用位运算符将十进制转换为二进制。以下是一个简单的示例代码:
```c
#include <stdio.h>
void decimalToBinary(unsigned int n) {
if (n > 1) {
decimalToBinary(n / 2);
}
printf("%d", n % 2);
}
int main() {
unsigned int decimalNumber;
printf("Enter a decimal number: ");
scanf("%d", &decimalNumber);
printf("The binary representation of %d is: ", decimalNumber);
decimalToBinary(decimalNumber);
return 0;
}
```
在该代码中,我们定义了一个名为`decimalToBinary`的函数,该函数采用一个无符号整数作为参数。该函数使用递归方式将十进制数字转换为二进制,并输出二进制表示形式。在`main`函数中,我们从用户那里读取要转换的十进制数,并调用`decimalToBinary`函数进行转换。
阅读全文