首页 > 代码库 > [C/C++]_[初级]_[判断大小端序Little Endian Order]
[C/C++]_[初级]_[判断大小端序Little Endian Order]
场景:
1. 在读取硬盘数据和媒体数据时,需要根据读取的数据进行大小端序的转换,以正确识别数据。其中一个处理就是首先要判断cpu支持的大小端序情况才能转换.
2. Little Endian Order: 低地址存低位(整数的高低位)的数据.
test.cpp
#include <stdio.h> #include <iostream> using namespace std; //1.方法1,通过判断int的低位是否存储了数值. int IsLittleEndian1() { int x = 1; if (*(char*) &x == 1) { return 1; } else { return 0; } } //1.方法2,使用union的特性判断低位的int值 int IsLittleEndian2() { union w { int a; char b; }w1; w1.a = 1; return (w1.b == 1); } int main(int argc, char const *argv[]) { cout << "IsLittleEndian1:.................." << endl; if(IsLittleEndian1()) { cout << "Little Endian Order" << endl; }else { cout << "Big Endian Order" << endl; } cout << "IsLittleEndian2:.................." << endl; if(IsLittleEndian2()) { cout << "Little Endian Order" << endl; }else { cout << "Big Endian Order" << endl; } return 0; }
输出:
IsLittleEndian1:.................. Little Endian Order IsLittleEndian2:.................. Little Endian Order
[C/C++]_[初级]_[判断大小端序Little Endian Order]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。