c语言中unsigned char p=[5]={12,4,5,13,5};转换为2进制怎么写
时间: 2024-09-13 15:17:34 浏览: 47
unsigned char数组转成string 用16进制表示
在C语言中,`unsigned char` 类型的数组 `p` 被初始化为一个包含五个元素的字节序列,每个元素的值分别是12、4、5、13和5。要将这些值转换为二进制形式,可以遍历数组并单独处理每个元素。以下是将它们转换成二进制字符串的方式:
```c
#include <stdio.h>
#include <string.h>
// 将一个byte转换为二进制字符串
char* byte_to_binary(unsigned char value) {
char binary[8]; // 预留足够的空间存放最多8位二进制数(假设uchar是8位)
int i;
for (i = 0; i < 8; i++) {
binary[i] = (value & 1) ? '1' : '0';
value >>= 1;
}
binary[7] = '\0'; // 添加终止符
return binary;
}
int main() {
unsigned char p[] = {12, 4, 5, 13, 5};
const size_t len = sizeof(p) / sizeof(p[0]);
char *binary_str[len];
for (size_t i = 0; i < len; i++) {
binary_str[i] = byte_to_binary(p[i]);
printf("Element %d: ", i);
printf("%s\n", binary_str[i]);
}
return 0;
}
```
这段代码会打印出数组 `p` 中每个元素的二进制表示。注意,这个例子假设 `unsigned char` 类型是8位的,如果实际不是,需要调整 `binary` 数组的长度。
阅读全文