大小端及其检测方式

大小端介绍

1、小端存储
将一个数据的低字节序内容存储到低地址处,将高字节序的内容存储到高地址处。
这里写图片描述

2、大端存储
将一个数据的低字节序的内容存储到高地址处,高字节序的内容存储到低地址处。
这里写图片描述

检测方法:
方法一:
取出一个整型数的地址,并拿出第一个字节判断是高字节序还是低字节序。

方法二:
利用共用体成员共用一块空间,取出第一个字节的地址,进行判断

#include<iostream>

int che_sys1()
{
    int i = 1;
    char*p= (char*)&i;//&i取出整型i的地址,并取出整型的第一个字节
    return *p;         
}
int che_sys2()
{
    union un{
        int i;
        char c;
    }u;
    u.i = 1;
    return u.c;
}
int main()
{
    int ret = -1;
    ret = che_sys1();
    if (ret == 1)
        std::cout << "小端存储" << std::endl;
    else
        std::cout << "大端存储" << std::endl;
    ret = -1;
    ret = che_sys2();
    if (ret == 1)
        std::cout << "小端存储" << std::endl;
    else
        std::cout << "大端存储" << std::endl;
    system("pause");
    return 0;
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Vickers_xiaowei/article/details/82656386