判断机器大端还是小端
#include <iostream>
using namespace std;
union
{
int number;
char s;
}unionTest;
bool IsBigEndin()
{
unionTest.number = 0x01000002;
return (unionTest.s == 0x01);
}
void main()
{
if (IsBigEndin())
cout<<"大端"<<endl;
else
cout<<"小端"<<endl;
}
使用union特性,来判断机器是大端还是小端字序。
所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
所谓的小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

浙公网安备 33010602011771号