C语言中,如何将十进制数转化为二进制数并按位存放到数组中
时间: 2024-10-28 16:09:05 浏览: 55
在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)。
阅读全文