我的代码应该检测存储在我的数组中的整数是以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
我该如何解决这个问题?