在内存中有两种存储整数的方式,一种是将低序字节存储在起始位置,这称为小端字节序,另一种方法是将高序字节存储在起始位置,这成为大端字节序。如何判断所使用的机器是大端字节序还是小端字节序呢?以下程序使用联合体判断当前机器是大端还是小端。
#include <iostream> using namespace std; int main(void) { union{ short s; char c[2]; } un; un.s = 0x0102; if (un.c[0] == 2 && un.c[1] == 1) { cout << "小端" << endl; } else if (un.c[0] == 1 && un.c[1] == 2) { cout << "大端" << endl; } else { cout << "错误" << endl; } system("pause"); return 0; }