ビッグエンディアンとリトルエンディアンの問題で毎日仕事をしているわけではないので、どの問題が何であるかを覚えるのは非常に困難です。
最近、私は2つの違いを尋ねるインタビューを受けました。私は「推測」することに決めたのを覚えていなかったので(結局50%の確率)、失敗しました。
それで、ビッグエンディアンとリトルエンディアンの違いを思い出すための広く知られた実用的なトリックはありますか?
ビッグエンディアンとリトルエンディアンの問題で毎日仕事をしているわけではないので、どの問題が何であるかを覚えるのは非常に困難です。
最近、私は2つの違いを尋ねるインタビューを受けました。私は「推測」することに決めたのを覚えていなかったので(結局50%の確率)、失敗しました。
それで、ビッグエンディアンとリトルエンディアンの違いを思い出すための広く知られた実用的なトリックはありますか?
回答:
私は常に間違った方法を定義していると考えてきましたが、それを覚えておくのもヒントです。英語を母国語としない人として、「開始」の反対として「終了」を見ます(明らかに「終了」は開始-終了または終了-のどちらかを意味します)。とにかく、「間違った方法で定義されている」ことを覚えているだけです:)
または、ビットエンディアンを参照する:
単語のエンディアンネスの通常の使用は、単語内のバイトの順序を指しますが、その一般的な意味は、より大きなデータ項目の表現内の個別にアドレス可能なサブコンポーネントの順序を指します(Wikipediaで説明されています)。
これを覚える最良の方法は、文明化された人々が多様性を追求し、したがって彼らが彼らの数を注文するのとは異なる方法で彼らの卵を食べるということです。最初に大きな数字で始まる10進数(ビッグエンディアン)を書くのに対して、小さな端(ソフトエンディアン)からゆで卵を食べます。
ビッグエンディアン番号は「ビッグエンド」から始まります。リトルエンディアン番号は「リトルエンド」から始まります。
どちらも、ガリバー旅行記によると、どこで卵を食べ始めるかという問題を暗示しています。
この場合、「終了」は開始の反対ではなく、単に(ロープ|文字列|番号|配列)の極端を意味するため、「ビッグフィニッシュ」または「リトルフィニッシュ」とは呼ばれません(間違いなく「開始」の反対)。
私にとって覚えやすい最も簡単な方法は、「エンディアン」という言葉を「スターティアン」に変更することです。ビッグスターティアン整数はビッグエンドで始まり(たとえば、最上位バイトが最初に来る)、リトルスターティアン整数はリトルエンドで始まります(たとえば、最下位バイトが最初に来る)。
「ビッグエンディアン」と「リトルエンディアン」のどちらを思い出すことはできませんでしたが、PowerPCとIntel x86プロセッサのエンディアンを知っていました。ほとんどの文字はIntelとほとんど共通していないため、Intel x86はリトルエンディアンです。
もちろん、PPCとx86のバイトオーダーを知っている場合にのみ役立ちます。一方、Intel x86 =リトルエンディアンであることを覚えておく必要があります。また、x86とARMはまったく異なる命令セットでも非常に互換性が高いことを忘れないでください。
私はこのように言います:ビッグは美しいです!
大きい==美しい==正しい。
正しいエンディアンとは、hexdumpで読むことができるものです。これは、健全な人間が行うように、最上位バイトを最初に置くものです。
少し==い==間違っています。
このエンディアンによって生成される16進ダンプは、「脳!」と叫んで逃げるほど単純な間違いです。多分これはある種のエイリアンの憎悪であり、この残虐行為の起源を推測することしかできません。それにもかかわらず、それは存在し、私たちはそれで立ち往生しています。
ピッティ、それは常にレースを作る最高のバリアントではありません...
Little == ugly == wrong
... 「最小の人でも未来の進路を変えることができる」
ビッグエンディアン:(昇順)
低から高
0 | 1 | 2 | 3 ^ ^開始終了
リトルエンディアン:(降順)
高から低
すなわち
3 | 2 | 1 | 0 ^ ^開始終了