以c语言初学者水平编一段代码j解决下面试题。试题详情: 将任意一个十进制数转换成二进制数,按位存放到数组中,然后输出。 输入提示: 输入一个整数,数据范围:0-890000000000。 输出提示: 输出仅一行,为输入的二进制数。 输入样本: 78 输出样本: 1001110
时间: 2024-05-02 10:23:35 浏览: 11
以下是使用 C 语言编写的代码:
```
#include <stdio.h>
int main() {
int num, i, j, bin[100];
printf("请输入一个十进制数:");
scanf("%d", &num);
i = 0;
while (num > 0) {
bin[i] = num % 2;
num = num / 2;
i++;
}
printf("二进制数为:");
for (j = i - 1; j >= 0; j--) {
printf("%d", bin[j]);
}
printf("\n");
return 0;
}
```
注释:
1. 首先定义需要用到的变量:num 为输入的十进制数,i 为二进制数组的下标,j 用于循环输出二进制数的每一位,bin 数组用于存储二进制数。
2. 使用 scanf() 函数获取用户输入的十进制数。
3. 通过除以 2 的余数和商,将十进制数转换为二进制数,并把每一位存放到 bin 数组中。
4. 输出转换后的二进制数,注意要从高位到低位输出。
5. 程序结束。
相关问题
c语言:将任意一个十进制数转换成二进制数,按位存放到数组中,然后输出。
下面是一个将十进制数转换成二进制数,并按位存放到数组中的C语言代码:
```c
#include <stdio.h>
int main() {
int decimal, binary[32], i = 0;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("Binary number is: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
return 0;
}
```
代码中,首先要从用户输入中获取一个十进制数。然后使用while循环将十进制数转换成二进制数,并将每个二进制位存放到数组中。最后使用for循环输出数组中存放的二进制数。
c语言:用函数实现将一个十进制数转换为二进制数
下面是一个将十进制数转换为二进制数的函数实现:
```c
#include <stdio.h>
// 十进制转二进制
void decimalToBinary(int n) {
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binaryNum[j]);
}
int main() {
int decimalNum;
printf("Enter a decimal number: ");
scanf("%d", &decimalNum);
printf("Binary equivalent: ");
decimalToBinary(decimalNum);
return 0;
}
```
该函数将十进制数转换为二进制数,并将其打印出来。它使用了数组来存储二进制位。首先,我们将十进制数除以2,直到商为0。在每次循环中,我们将余数存储在数组中,并将商作为下一次迭代的输入。最后,我们按相反的顺序打印出数组中的元素,以获取正确的二进制位序列。