给出C语言程序将十进制数转换成二进制数,并按位存放到数组中。
时间: 2023-06-05 18:07:32 浏览: 66
可以的,以下是一个简单的程序示例:
```
#include <stdio.h>
int main() {
int decimal_number, remainder, binary_number[20], i=0;
// 获取需要转换的十进制数
printf("请输入一个十进制数:");
scanf("%d", &decimal_number);
// 将十进制数转换成二进制数
do {
binary_number[i] = decimal_number % 2;
decimal_number = decimal_number / 2;
i++;
} while (decimal_number != 0);
// 输出二进制数
printf("该数的二进制表示为:");
for (int j=i-1; j>=0; j--) {
printf("%d", binary_number[j]);
}
printf("\n");
return 0;
}
```
相关问题
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语言中,你可以通过以下步骤将十进制数转换为二进制并存储到数组中:
1. **数组声明**:首先,你需要一个足够大的数组来存放二进制数。例如,如果要表示32位二进制数,可以声明一个`char`类型的数组,因为`char`通常占1字节,能存储8位二进制数据。
```c
#include <stdio.h>
char binary[4]; // 用于存放32位二进制数
```
2. **函数实现**:创建一个函数,接受十进制数作为参数,并将其转换成二进制字符串。然后逐位填充到数组中。这里我们可以用位运算符`&`和`1 << n`来获取每一位。
```c
void decimalToBinary(int decimal) {
int i = sizeof(binary) - 1; // 从最低位开始
while (decimal > 0) {
binary[i] = decimal & 1; // 取最后一位的二进制值
decimal >>= 1; // 将除最后一位外的其他位右移
i--;
}
// 若最高位是0,则添加一个'0'
if (binary[0] == 0)
binary[0] = '0';
}
```
3. **主程序部分**:调用这个函数并将结果打印出来。
```c
int main() {
int decimal_num = 123;
decimalToBinary(decimal_num);
printf("The binary representation is: %s\n", binary);
return 0;
}
```
当你运行这个程序,会得到十进制数123的二进制形式(1111011)。
阅读全文