c语言中int p[5]={12,4,5,13,5};转换为二进制数并存入数组中
时间: 2024-09-14 19:04:44 浏览: 36
在 C 语言中,给定数组 `p` 定义了整型数组,并初始化了五个元素。每个元素存储了一个十进制数值。若你想将这些十进制数转换成二进制形式并存入数组,你需要使用一些位操作函数来逐个完成这个过程。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义函数,将十进制转为二进制并保存到一个新的字符数组
char* decimalToBinary(int num, char binary[20]) {
int i = 0;
while (num > 0) {
binary[i++] = num % 2 + '0'; // 将余数转换为字符并添加到二进制字符串前部
num /= 2; // 对除法结果取整继续循环
}
binary[i] = '\0'; // 添加终止符
// 反转数组,因为数组是从低字节开始存储的
reverse(binary, 0, i - 1);
return binary;
}
void reverse(char arr[], int start, int end) {
int temp;
while (start < end) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
int main() {
int p[5] = {12, 4, 5, 13, 5};
char binary[20][6]; // 为了存放每一位二进制数,假设每个数字最多需要五位二进制
for (int i = 0; i < 5; i++) {
int num = p[i];
char* binary_num = decimalToBinary(num, binary[i]);
printf("Element %d in decimal is %d, converted to binary is %s\n", i + 1, num, binary_num);
}
return 0;
}
```
运行此程序会打印出每个数组元素及其对应的二进制表示。
阅读全文