3

特定のアーキテクチャがリトルエンディアンまたはビッグエンディアンのいずれかであると言うとき、数値の意味がメモリに左から右または右から左のどちらで格納されるかを指しています。私の質問は次のとおりです。この順序付けは、バイト内でのビットまたは順序付けの方法、またはメモリ内でのバイトの順序付けを指しますか?

たとえば、数を考えてみましょう6000=1770h=0001011101110000b。バイト内のビットとメモリ内のバイトの両方がリトル エンディアンである場合、これは次のように格納されます。

00001110 11101000 = 0E E8、

バイト内のビットがビッグ エンディアンであるが、メモリ内のバイトがリトル エンディアンである場合、これは次のように格納されます (価値のあることとして、これはたまたま Visual Studio がメモリが x64 アーキテクチャで編成されていることを私に伝えているように見える方法です)

01110000 00010111 = 70 17,

ビットがリトル エンディアンで、バイトがビッグ エンディアンの場合、これは次のように格納されます。

11101000 00001110 = 0E E8,

最後に、ビットがビッグ エンディアンで、バイトがリトル エンディアンの場合、これは次のように格納されます。

00010111 01110000 = 17 70

(うまくいけば、私はそれを正しくしました。)

では、「リトルエンディアン」と「ビッグエンディアン」という用語は、実際には何を指しているのでしょうか。これらの用語は、バイト内のビットの順序、またはメモリ内のバイトの順序、またはその両方を指していますか? さらに、たとえば7Cが特定のバイトにあると VS が教えてくれた場合、それはコンピューター メモリ内のそのバイトを構成するビットが文字どおり0111 1100であることを意味するのでしょうか、それともそのバイトに格納されている値が単に であることを意味するのでしょうか。ですが、基礎となるアーキテクチャがたまたまリトルエンディアンであるかどうかに応じて、7Ch=124実際には表現されない場合がありますか?7c=01111100

4

2 に答える 2