システムのビッグ エンディアン ストレージとスモール エンディアン ストレージを決定する方法

ビッグエンディアンとスモールエンディアンのストレージの問題 (エンディアンの問題):

        CPU が異なれば、マルチバイト データを保存する方法も異なります。

        1. リトルエンディアン:開始アドレスに下位バイトを格納(下位アドレッシング)

        2. ビッグエンディアン: 開始アドレスに上位バイトを格納します (上位アドレス指定)

        リトルエンディアンストレージ:アドレスの下位ビットはデータの下位ビットを格納し、アドレスの上位ビットはデータの上位ビットを格納します。

        ビッグエンディアンストレージ:アドレスの下位ビットはデータの上位ビット格納し、アドレスの上位データの下位ビットを格納します。

 図に示すように:

プログラムを使用して、CPU のエンディアン ストレージのサイズとサイズを決定できます。

#include <stdio.h>
int main(){
    //通过指针判断大小端
    int a = 0x12345678;
    char *p = (char *)&a;
    if(0x78 == *p){
        printf("小端\n");
    }else if(0x12 == *p){
    printf("大端\n");
    }
     
    return 0;
}

おすすめ

転載: blog.csdn.net/Little_Star0/article/details/127586587