機械が大端モードか小端モードかを判断する

623 ワード

大端が高位バイト先記憶(低アドレス)小端が低位バイト先記憶(低アドレス)ネットワークバイト順が大端である,すなわち高位バイト先伝送によるint-charの強制変換は,低アドレスの数値遮断をcharに与えるものであり,この準則を用いてシステムが大端序であるか小端序であるかを判断できる.
#include 
using namespace std;
int main()
{
    int a = 0x1234;
    char c = static_cast(a);
    if (c == 0x12)
        cout << "big endian" << endl;
    else if(c == 0x34)
        cout << "little endian" << endl;
}

endianのchはendian全体の低アドレスセグメントに対応し、このセグメントの内容が0 x 34、すなわち整数0 x 1234の低ビットバイトに等しい場合、低ビットバイトが先に格納され、小エンドシーケンスであることを示す.逆にch=0 x 12が上位バイト先記憶を説明すると、マクロシーケンスであることを説明する.