データをメモリ上に書き込むとき、メモリの住所の小さい値から書き込むのか、大きい値から書き込むのか、どちらでしょう。
内部構造なので、どっちでもいいです。
たしかに、どっちでもいいですよね。
とはいえ、試験に出題されるからには勉強する必要があるので、少しお付き合いください。
この順番はバイトオーダーと言うのですが、CPUによって決まっています。皆さんにも馴染みが深いIntel系では、大きい値から書き込みます。これをリトルエンディアンと言います。逆に、小さい方から書き込むのをビックエンディアンと言います。
過去問(H29春AP午前問21)を見てみましょう。
ここで、ABCD1234という値をメモリに配置します。細かい解説はすっ飛ばして、リトルエンディアンでは単純に、住所の大きい方から配置します。また、「AB」という2つの値で1バイトですから、2つずつセットします。
正解はイです。
関連する問題が、H23春AP午前問11です。 ※テキストデータでごめんなさい。
正解は、エです。
また、以下も参照ください
http://sc.seeeko.com/archives/5377814.html
リトルエンディアンに関しては、IPAの資料も参照ください。
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c007.html

内部構造なので、どっちでもいいです。
たしかに、どっちでもいいですよね。
とはいえ、試験に出題されるからには勉強する必要があるので、少しお付き合いください。
この順番はバイトオーダーと言うのですが、CPUによって決まっています。皆さんにも馴染みが深いIntel系では、大きい値から書き込みます。これをリトルエンディアンと言います。逆に、小さい方から書き込むのをビックエンディアンと言います。
過去問(H29春AP午前問21)を見てみましょう。
![]() |
正解はイです。
関連する問題が、H23春AP午前問11です。 ※テキストデータでごめんなさい。
問11 主記憶の1000番地から,表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき,プロセッサのエンディアンとレジスタにロードされる数値との組合せとして,正しいものはどれか。 バイトアドレス データ 1000 00 1001 01 1002 02 1003 03 リトルエンディアン ピッグエンディアン ア 00010203 02030001 イ 00010203 03020100 ウ 02030001 00010203 エ 03020100 00010203 |
また、以下も参照ください
http://sc.seeeko.com/archives/5377814.html
リトルエンディアンに関しては、IPAの資料も参照ください。
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c007.html
コメント