确定数组中整数的字节顺序

时间:2018-02-25 02:01:51

标签: c++ x86 number-formatting endianness

我的代码应该检测存储在我的数组中的整数是以big endian还是little endian顺序。

这是我的代码:

#include <iostream>

using namespace std;

int main()
{
    int num[] = {0,0,0x04030201,0,0};

    //int num = 0x04030201;

    for (int i=0;i<5;i++) {
        if(*(char *)&num[i] == 1) {
            printf("\nLittle-Endian\n");
        }
        else {
            printf("Big-Endian\n");
        }
    }
    return 0;
}

由于我的计算机是英特尔,所有数字都应以小端存储。这意味着我希望代码遍历我的数组中的每个整数并打印小端,所以它应该只打印5次小端。但这是我目前得到的输出:

Big-Endian
Big-Endian

我该如何解决这个问题?

0 个答案:

没有答案