質問

一部のプロセッサ メーカーがなぜ使用を決めたのか

  • リトルエンディアン
  • ビッグエンディアン
  • ミドルエンディアン
  • 他のもの?

?

ビッグ エンディアンを使用すると、そのビットが最初のビットであるため、数値が負か正かをより速く判断できると聞いたことがあります。(個々のビットにはアクセスできないため、最新の CPU ではこれは問題になりません。)

役に立ちましたか?

解決

リトルエンディアンの利点は、変数が同じアドレスを使用して任意の長さのように読み取ることができることである。

例えば32ビット変数がアドレスを変更せずに8ビットまたは16ビットの変数として読み取ることができます。これは、これらの日限定された利点を持っているかもしれませんが、アセンブラ、限られたメモリの日に、それは重要な利点可能性があります。

他のヒント

のようなビッグまたはリトルエンディアンの特別な利点は、ネイティブのCPUのエンディアンを使用したり、指定したファイルのエンディアンを扱う以外、ありません。

理由はビッグエンディアンとリトルエンディアンの両方の共存は、異なるCPUメーカーはマルチバイトデータを表現するためのさまざまな規則を使用し、標準的には一度に出現していないということです。

CPUのエンディアンを(どんなに小さなまたは大きな)あなたの算術演算の高速恩恵を与える使用:あなたは直接メモリになどのマルチバイト整数を引く、追加することができます。

ファイル形式で事前に定義され、規定のエンディアンを(どんなに小さなまたは大きな)使用すると、あなたのすべてのシステム上のファイルに関係なく、他のシステムのCPUのエンディアンを読み取ることができるという利点を提供します。 (読み取りルーチンが書かれており、適切に最適化されている場合)を右エンディアンを持つシステムは、より高速なファイルを読み取ることができますが、間違ったエンディアンでも、システムがそれを読むことができます。通常、速度差は、(整数のたくさんの非常に大きなファイルを除く)無視できるので、最初の読み出しルーチンを最適化の最大可能速度ゲインを測定することをお勧めします。

(たとえば、TIFFのための)いくつかのファイル形式は、両方のエンディアンをサポートしています。この場合、ファイルは同じマシン、または類似したマシン上で後処理されるだろうと仮定すると、CPUのエンディアンを持つファイルを生成することをお勧めします。

リトルエンディアンでは、アドレスを変更する気にしませんが、ビッグエンディアンであなたがする必要があります:<のhref =「http://www.noveltheory.com/techpapers/endian.asp」のrel =「nofollowを」 > http://www.noveltheory.com/techpapers/endian.asp の

まだ少しエンディアンは、現代のCPUでビッグエンディアンに勝る利点を持っている場合は、

私は実際にはわかりません。私はアドレスを切り替えは、電力のCPUのpicowattsがかかると思い-naively-:)

特定の操作が他の部分の前に利用可能な値の部分を有することから利益を得ます。一度にすべてを読み取るには大きすぎる二つの符号なし又は2の補数番号を追加するときに上位ビットが利用可能である前に、結果の下位ビットを計算することができるではなく、その逆、暗示リトルエンディアンの順序が有利です。シリアルフラッシュチップにアクセスする場合(典型的にはチップに応じて最下位8-12ビットが、すべてを、)行を定義するビットのすべてが利用可能になったときに、行デコードは、ビッグエンディアン順が有利であることを意味し、開始することができますそこます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top