原理解析
小端模式低地址存储低字节数据,大端模式低地址存储高字节内容,所以我们可以将一个int类型数据0x12345678转换为char buff[4],然后查看buff[0]内容,如果buff[0]为0x12则为大端模式,如果buff[0]为0x78则为小端模式。
代码实现
#include <iostream>
bool isBigendian(void)
{
unsigned int num = 0x12345678;
char *buff = reinterpret_cast<char*>(&num);
return buff[0] == 0x12 ? true : false;
}
int main(void)
{
if (isBigendian())
{
std::cout << "Big endian" << std::endl;
} else
{
std::cout << "Little endian" << std::endl;
}
return 0;
}