Gilt die Endlichkeit auch für die Bit-Reihenfolge?

8

Ich habe keine spezifische Frage hier auf SO gefunden, wenn das ein Duplikat ist, weisen Sie es bitte auf mich hin und ich werde das löschen.

Also wirklich, hat Endianness etwas mit bit Auftrag zu tun?

Dies scheint zu implizieren, dass die Antwort NEIN ist, während andere Quellen (ich finde keinen gerade jetzt, aber sicherlich habe ich vor einiger Zeit einige Artikel gelesen) implizieren, dass Endian ist die Reihenfolge der Bytes und Bits .

Um genauer zu sein: In einer Big-Endian-Architektur, in der MSB das erste Byte innerhalb eines Bytes ist, ist MS auch das erste? Convertly, auf Little-Endian-Systemen, wo LSB zuerst ist, ist LSB auch zuerst?

LETZTE BEARBEITUNG: Ich fand dies , das sagt " Bit-Reihenfolge folgt normalerweise der gleichen Endianness wie die Byte-Reihenfolge für ein bestimmtes Computersystem "

    
Bogdan Alexandru 20.08.2014, 10:08
quelle

7 Antworten

4

Die anderen Antworten sind nicht vollständig korrekt. Ja, Speicher ist byteadressierbar, daher endet dort normalerweise die Endianität. Aber Adressierbarkeit ist nicht die einzige Möglichkeit, eine definierte Endlichkeit zu erzeugen.

In C können Sie Bitfelder definieren. Bitfelder haben bestimmte Layouts; beispielsweise könnte das erste Bitfeld, wenn ein Bit in entweder der msb oder der lsb gespeichert werden könnte, und das Umhüllen von Bitfeldern über Bytegrenzen hinweg auf eine Big-Endian-Weise auffallend anders sein, als dies auf eine Little-Endian-Weise zu tun. Wenn Sie also Bitfelder definieren, haben Sie möglicherweise Bit-Endian.

Aber wie diese angeordnet sind, hätte mehr mit dem Compiler zu tun als die Architektur, zumindest in der Regel.

    
H Walters 20.08.2014 10:45
quelle
3

Nein, weil Sie Bits nicht einzeln adressieren können.

    
doron 20.08.2014 10:10
quelle
2

In der modernen Computerverarbeitung gilt Endianness nur für die Anordnung von Bytes, nicht für Bits.

    
Andrey 20.08.2014 10:10
quelle
2

Endiannität wird nur auf die Byte-Reihenfolge angewendet. Nicht für die Bit-Reihenfolge. Die Bit-Reihenfolge bleibt gleich.

Warum?

Speicher ist byteadressierbar. Dies ist nur eine phantastische Art zu sagen, dass jede Adresse ein Byte speichert. So können Sie die Reihenfolge der Bytes ändern, nicht die Bits im Speicher.

Endianness macht nur dann Sinn, wenn Sie einen großen Wert (z. B. ein Wort) in mehrere kleine Werte aufteilen möchten. Sie müssen sich für einen Auftrag entscheiden, um es in den Speicher zu legen.

Endianness ist nur sinnvoll, wenn Sie eine Multibyte-Menge aufteilen und versuchen, die Bytes an aufeinanderfolgenden Speicherorten zu speichern. Aber wenn Sie ein Register aufnehmen, ergibt das keinen Sinn. Ein Register ist einfach eine 32-Bit-Menge (hängt von Ihrem Prozessor / Controller ab) und die Endianität trifft nicht darauf zu.

Die Bit-Reihenfolge folgt normalerweise der gleichen Endianz wie die Byte-Reihenfolge für ein gegebenes Computersystem - Es ist True

Für weitere Informationen Endianness

    
Sathish 20.08.2014 10:11
quelle
2

Little-Endian-CPUs verwenden normalerweise die Bitsummerierung "LSB 0", jedoch können beide Bit-Nummerierungskonventionen in Big-Endian-Maschinen gesehen werden. Einige Architekturen wie SPARC und Motorola 68000 verwenden Bit-Nummerierung "LSB 0", während S / 390, PowerPC und PA-RISC "MSB 0" verwenden. [2]

siehe

Ссылка

Ссылка

    
bare_metal 09.09.2014 08:41
quelle
0

Endianness funktioniert auf der Basis von Bytes, nicht von Bits. Bits sind nicht adressierbar.

    
Ravi 20.08.2014 12:40
quelle
0

Wenn ich auf diese Frage zurückblicke, die ich vor einigen Jahren gestellt habe, kann ich heute eine Teilantwort mit einem Beispiel hinzufügen, in dem Bit-Endianität existiert und wichtig ist: in Kommunikationsprotokollen. Jede Protokollspezifikation muss definieren, welches Bit zuerst gesendet wird, wenn ein Oktett in einen Bitstrom geschoben wird.

    
Bogdan Alexandru 19.11.2017 20:32
quelle

Tags und Links