c语言中int p=[5]={12,4,5,13,5};转换为二进制数组怎么写
时间: 2024-09-13 09:19:32 浏览: 53
在 C 语言中,将整数数组 `int p[]` 转换为二进制数组,你需要遍历整个数组,并对每个元素进行转换。这里假设 `p[5]` 中的元素是无符号整数。以下是简单的步骤:
1. 定义一个新的二进制数组 `binary_array` 来存储二进制值。
2. 使用循环和位运算符(如按位与与置位)将十进制转换为二进制。
以下是一个示例函数,用于将给定的整数数组转换为二进制数组:
```c
#include <stdio.h>
#include <string.h>
// Function to convert integer to binary string and append to binary_array
void int_to_binary(int num[], char binary_array[], int index) {
if (num[index] == 0)
return;
// Convert number to binary and store in binary_array
binary_array[index++] = '1' + (num[index - 1] % 2);
int_to_binary(num, binary_array, index); // Recursive call with rightmost digit
}
// Main function to convert the entire array
void convert_array_to_binary(int arr[], int len, char binary_array[]) {
binary_array[len * sizeof(int)] = '\0'; // Ensure null terminator for the binary strings
for (int i = 0; i < len; ++i) {
int_to_binary(arr, binary_array, len * sizeof(int) - i * sizeof(int)); // Start from least significant bit
binary_array[len * sizeof(int) - i * sizeof(int)] = '\0'; // Add a null terminator after each binary representation
}
}
int main() {
int p[] = {12, 4, 5, 13, 5};
const int size = sizeof(p) / sizeof(p[0]);
char binary[size][sizeof(int)*8 + 1]; // Array to store binary representations with room for the null terminator
convert_array_to_binary(p, size, binary);
// Print the binary array elements
for (int i = 0; i < size; ++i) {
printf("%d in binary: %s\n", p[i], binary[i]);
}
return 0;
}
```
这个程序会打印出每个数组元素的二进制表示。注意,这里假设每个整数占用 32 位(对于 `int` 类型通常如此),所以每个元素的二进制字符串长度为 8。如果你使用的是其他类型的整数,记得相应调整计算字节大小的部分。
阅读全文