マルチバイト文字は、一般的には1バイト単位の文字の並びなので、その文脈においてエンディアンが関係することはまずありません。UTF-16やUTF-32についてはエンディアンの規定がありますが。
ビッグエンディアンの方が人間にとって読みやすいが、リトルエンディアンの方がコンピューターにとっては読みやすい。
その認識は誤りです(コンピューターにとっての読みやすさって何? という疑問がわきませんか?)。コンピューターにとってはエンディアンがどっちであろうと関係ありません。現にARMやMIPS、PowerPCなど、どちらのエンディアンにも切り替え可能なCPUは多いです。
そうではなくて、人間(プログラマー)にとって、ビッグエンディアンは「読みやすいが扱いにくい」、リトルエンディアンは「読みにくいが扱いやすい」というのが正確でしょう。
扱いやすさとはどういうことかというと、例えばC言語でこんなコードを書いたとします。
C
1union
2{
3 short sh;
4 char ch;
5} hoge;
6hoge.sh = 0;
7hoge.ch = 100;
8printf("%d\n", hoge.sh);
リトルエンディアンだと100
と表示されますが、ビッグエンディアンだと25600
になります。つまり、リトルエンディアンだと桁の位置とメモリ上の格納場所が一致するので素直にプログラムが書けるのですが、ビッグエンディアンだとそれが一致しなくなるので、プログラムを作るにおいて特段の配慮が必要になるわけです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/23 12:44