1. 程式人生 > >判斷系統是大端還是小端的兩種方法

判斷系統是大端還是小端的兩種方法

stream bsp == ace all fun 如果 cnblogs tdi

#include <iostream>
#include <stdio.h>
#include <malloc.h>
#include <string.h>

using namespace std;

//判斷系統是大端還是小端:通過將&int轉換為char*
int fun()
{
    int num = 1;

    // *((char*)&num)獲得num的最低字節,為0x00,說明是大端 為0x01,說明是小端
    return *((char*)&num)?1:0; // 本機返回1:為大端
}

//判斷系統是大端還是小端:通過聯合體,因為聯合體的所有成員都從低地址開始存放
int fun1() { union test { int i; char c; }; test t; t.i = 1; //如果是大端,則t.c為0x00,則t.c!=1,返回0 是小端,則t.c為0x01,則t.c==1,返回1 return (t.c==1); } int main() { cout << fun() << endl; cout << fun1() << endl; }

判斷系統是大端還是小端的兩種方法