C语言写一个大小端测试代码
时间: 2024-11-29 14:36:03 浏览: 22
在C语言中,我们可以编写一段简单的代码来测试整数在内存中的存储方式,通常分为大端模式(Big Endian)和小端模式(Little Endian)。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdint.h>
// 定义两个int类型的变量,一个作为测试数据
uint16_t test_value = 0x1234; // 一个特定值,高位为12,低位为34
// 将test_value转换为字节并打印出来
void print_endian(uint16_t value) {
char bytes[2];
uint8_t *byte_ptr = (uint8_t *)&value;
// 按照网络字节序(大端)存取
bytes[0] = byte_ptr[1]; // 第二个字节
bytes[1] = byte_ptr[0]; // 第一个字节
printf("BigEndian: %02X %02X\n", bytes[0], bytes[1]);
// 按照主机字节序(小端)存取
byte_ptr = (uint8_t *)&value;
bytes[0] = byte_ptr[0]; // 最低字节
bytes[1] = byte_ptr[1]; // 次低字节
printf("LittleEndian: %02X %02X\n", bytes[0], bytes[1]);
}
int main() {
print_endian(test_value);
return 0;
}
```
在这个程序中,我们首先定义了一个`uint16_t`类型的变量`test_value`,然后分别按照大端和小端模式将其转换为字节并打印出来。运行此程序会显示原始值的存储顺序,取决于你的系统是大端还是小端。
阅读全文