编写代码 使用联合体将长整型数据的高字节和低字节拆分,并输出结果
时间: 2023-12-03 10:42:20 浏览: 100
字节的数据拆分
下面是一个示例代码,可以将一个 `long` 类型的数据拆分成高字节和低字节:
```c
#include <stdio.h>
union LongBytes {
long num;
char bytes[sizeof(long)];
};
int main() {
union LongBytes lb;
lb.num = 0x1234567890abcdef;
printf("Num: %ld\n", lb.num);
printf("High byte: 0x%x\n", lb.bytes[0]);
printf("Low byte: 0x%x\n", lb.bytes[sizeof(long) - 1]);
return 0;
}
```
解释:
这个程序定义了一个联合体 `LongBytes`,包含一个 `long` 类型的 `num` 和一个 `char` 类型的数组 `bytes`,数组大小为 `sizeof(long)`。
在 `main` 函数中,我们首先将 `lb.num` 赋值为一个十六进制数 `0x1234567890abcdef`。然后,我们可以通过访问 `lb.bytes` 数组来访问 `num` 的每一个字节。由于不同的机器可能有不同的字节序,这里我们只打印了第一个字节和最后一个字节。
输出如下:
```
Num: 1311768467463790323
High byte: 0xef
Low byte: 0x12
```
阅读全文