ビッグ エンディアンを使用するコンピュータは多くありますか? 購入した年とモデルが異なる 5 台のコンピューターでテストしました。それぞれリトル エンディアンを使用します。ビッグ エンディアンは現在でも使用されていますか、それとも Motorola 6800 などの古いプロセッサ用でしたか?
編集:
TreyA に感謝します。intel.com/design/intarch/papers/endian.pdfは非常に便利な記事です。以下のすべての回答をカバーし、それらを拡張します。
ビッグ エンディアンを使用するコンピュータは多くありますか? 購入した年とモデルが異なる 5 台のコンピューターでテストしました。それぞれリトル エンディアンを使用します。ビッグ エンディアンは現在でも使用されていますか、それとも Motorola 6800 などの古いプロセッサ用でしたか?
編集:
TreyA に感謝します。intel.com/design/intarch/papers/endian.pdfは非常に便利な記事です。以下のすべての回答をカバーし、それらを拡張します。
現在、ビッグ エンディアンのプロセッサや、ビッグ エンディアンとリトル エンディアンの間でエンディアン モードを切り替えるオプションを備えたプロセッサが多数使用されています (例: SPARC、PowerPC、ARM、Itanium など)。
「エンディアンを気にする」という意味によって異なります。通常、必要なデータに合わせてプログラムするだけであれば、エンディアンについてそれほど気にする必要はありません。エンディアンは、ファイルの読み取り/書き込み、ネットワーク経由でのデータの送信など、外界と通信する必要がある場合に重要です。これは、1 バイトを超える整数を直接メモリとの間で読み書きすることによって行われます。
外部データを扱う必要がある場合は、その形式を知る必要があります。その形式の一部は、たとえば、そのデータで整数がどのようにエンコードされているかを知ることです。4バイト整数の最初のバイトがその整数の最上位バイトであることをフォーマットが指定している場合、そのバイトを読み取り、プログラムの整数の最上位バイトに配置すると、その罰金を達成することができますリトル エンディアン マシンとビッグ エンディアン マシンの両方で実行されるコードを使用します。
そのため、特にプロセッサのエンディアンについてではなく、処理する必要があるデータについてです。そのデータには、「エンディアン」のいずれかで整数が格納されている可能性があります。どちらを知る必要があり、さまざまなデータ形式は、仕様に応じて、または形式を思いついた人の気まぐれに応じて、さまざまなエンディアンを使用します。
ビッグ エンディアンは、さまざまなアーキテクチャに関して、依然として最も多く使用されています。実際、Intel と古い DEC コンピュータ以外では、スモール エンディアンについては知りません。Sparc、Power PC (IBM Unix マシン)、HP の Unix プラットフォーム、IBM メインフレームなどはすべてビッグ エンディアンです。しかし、それは問題ですか?エンディアンを考慮しなければならなかったのは、modf
. それ以外の場合int
は、特定の範囲の整数値であり、それだけです。
次の一般的なプラットフォームは、ビッグエンディアンエンコーディングを使用します。
x86 /x64CPUはリトルエンディアンです。2つの間のバイナリデータとインターフェイスする場合は、これを確実に認識しておく必要があります。
これは回答というよりもコメントとしての資格がありますが、コメントすることはできません。読む価値があると思うほど素晴らしい記事だと思います。
これは、1980 年にさかのぼる Danny Cohen によるエンディアンネスの古典です: ON HOLY WARS AND A PLEA FOR PEACE
質問には十分なコンテキストがありません。一般的には、常に意識する必要がありますが、日常のコーディングで強調する必要はありません。整数の内部バイトをいじることを計画している場合は、エンディアンについて心配し始めてください。整数に対して標準的な計算を行う予定がある場合でも、心配する必要はありません。
エンディアンが出現する 2 つの大きな場所は、ネットワーク (ビッグ エンディアン標準) とバイナリ レコード (整数がビッグ エンディアンまたはリトル エンディアンのどちらで保存されるかを調査する必要があります) です。