Bitnummerierung - Bit numbering

In der Berechnung , Bitwertigkeit ist die Konvention verwendet , um die zu identifizieren , Bit - Positionen in einer binären Zahl oder einen Behälter eines solchen Wertes. Die Bitnummer beginnt mit Null und wird für jede nachfolgende Bitposition um eins erhöht.

Niedrigstwertige Bit

Die binäre Darstellung von dezimal 149, wobei das LSB hervorgehoben ist. Das MSB in einer 8-Bit-Binärzahl repräsentiert einen Wert von 128 dezimal. Das LSB stellt einen Wert von 1 dar.

Bei der Berechnung ist das niedrigstwertige Bit ( LSB ) die Bitposition in einer binären Ganzzahl , die den Einheitenwert angibt, d. h. bestimmt, ob die Zahl gerade oder ungerade ist. Das LSB wird manchmal als Bit niedriger Ordnung oder am weitesten rechts stehendes Bit bezeichnet , aufgrund der Konvention in der Positionsnotation , weniger signifikante Ziffern weiter rechts zu schreiben. Es ist analog zur niedrigstwertigen Ziffer einer dezimalen ganzen Zahl, die die Ziffer an der Einsen -Position (ganz rechts) ist.

Es ist üblich, jedem Bit eine Positionsnummer zuzuweisen, die von Null bis N-1 reicht, wobei N die Anzahl der Bits in der verwendeten Binärdarstellung ist. Normalerweise ist die Bitnummer einfach der Exponent für das entsprechende Bitgewicht in Basis-2 ( zB in 2 31 ..2 0 ). Einige CPU-Hersteller haben die Bitnummern umgekehrt zugewiesen (was nicht mit unterschiedlicher Endianness identisch ist ). In jedem Fall bleibt das niedrigstwertige Bit selbst als Einheitsbit eindeutig.

Die niederwertigsten Bits (Plural) sind die Bits der Zahl, die dem LSB am nächsten ist und dieses enthält. Die niederwertigsten Bits haben die nützliche Eigenschaft, sich schnell zu ändern, wenn sich die Zahl auch nur geringfügig ändert. Wenn beispielsweise 1 (binär 00000001) zu 3 (binär 00000011) addiert wird, ist das Ergebnis 4 (binär 00000100) und drei der niederwertigsten Bits ändern sich (011 bis 100). Im Gegensatz dazu bleiben die drei höchstwertigen Bits (MSBs) unverändert (000 bis 000). Aufgrund dieser Flüchtigkeit werden niedrigstwertige Bits häufig in Pseudozufallszahlengeneratoren , steganographischen Werkzeugen, Hashfunktionen und Prüfsummen verwendet .

Am wenigsten signifikantes Bit in der digitalen Steganographie

Ein Diagramm, das zeigt, wie die Manipulation der niederwertigsten Bits einer Farbe einen sehr subtilen und im Allgemeinen nicht wahrnehmbaren Einfluss auf die Farbe haben kann.  In diesem Diagramm wird Grün durch seinen RGB-Wert sowohl dezimal als auch binär dargestellt.  Der rote Kasten, der die letzten beiden Bits umgibt, zeigt die niedrigstwertigen Bits, die in der binären Darstellung geändert wurden.

Bei der digitalen Steganographie können sensible Nachrichten durch Manipulation und Speicherung von Informationen in den am wenigsten signifikanten Bits eines Bildes oder einer Tondatei verborgen werden. Der Benutzer kann diese Informationen später wiederherstellen, indem er die niedrigstwertigen Bits der manipulierten Pixel extrahiert, um die ursprüngliche Nachricht wiederherzustellen. Dadurch kann die Speicherung oder Übertragung digitaler Informationen verborgen bleiben.

Niederwertigstes Byte

LSB kann auch für niederwertigstes Byte stehen . Die Bedeutung ist parallel zu der für Bits: Es ist das Byte in einer Multi-Byte-Zahl, das den geringsten potentiellen Wert hat.

Höchstwertiges Bit

Die vorzeichenlose binäre Darstellung der Dezimalzahl 149 mit hervorgehobenem MSB. Das MSB in einer 8-Bit-Binärzahl ohne Vorzeichen repräsentiert einen Wert von 128 dezimal. Das LSB stellt einen Wert von 1 dar.

Beim Rechnen ist das höchstwertige Bit ( MSB ) die Bitposition in einer Binärzahl mit dem größten Wert. Das MSB wird aufgrund der Konvention in der Positionsschreibweise, höherwertige Ziffern weiter nach links zu schreiben, manchmal als das höherwertige Bit oder das am weitesten links stehende Bit bezeichnet .

Das Vorzeichenbit ist das MSB in einer vorzeichenbehafteten Binärzahl . In der Eins- und Zweierkomplement- Notation bedeutet "1" eine negative Zahl und "0" eine positive Zahl.

Es ist üblich, jedem Bit eine Positionsnummer im Bereich von Null bis N – 1 zuzuweisen, wobei N die Anzahl der Bits in der verwendeten Binärdarstellung ist. Normalerweise ist die zugewiesene Bitnummer einfach der Exponent für das entsprechende Bitgewicht in Basis-2 (wie in ). Einige CPU-Hersteller weisen Bitnummern unterschiedlich zu. Unabhängig davon , Nummerierung, die MSB bleibt das am meisten signifikante Bit. 231..20

Wichtigstes Byte

MSB kann auch für höchstwertiges Byte stehen . Die Bedeutung für Bytes ist parallel zu der für Bits: Es ist das Byte einer Multi-Byte-Zahl, das den größten potentiellen Wert hat.

Um Mehrdeutigkeiten zwischen Bit und Byte zu vermeiden, werden häufig die weniger abgekürzten Begriffe MSbit oder MSbyte verwendet.

Beispiel einer vorzeichenlosen Ganzzahl

Diese Tabelle zeigt ein Beispiel für den Dezimalwert 149 und die Position von LSB. In diesem speziellen Beispiel befindet sich die Position des Einheitswerts (dezimal 1 oder 0) in Bitposition 0 (n = 0). MSB steht für das höchstwertige Bit , während LSB für das niedrigstwertige Bit steht .

Binär (Dezimal: 149) 1 0 0 1 0 1 0 1
Bitgewicht für gegebene Bitposition n ( 2 n ) 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
Bitpositionsbezeichnung MSB LSB

Die Position des LSB ist unabhängig von der Reihenfolge, in der Bits übertragen oder gespeichert werden, was ein Endianness- Thema ist.

Das am wenigsten signifikante Bit zuerst

Die Ausdrücke höchstwertiges Bit zuerst und niederwertigstes Bit zuletzt sind Hinweise auf die Reihenfolge der Bitfolge in den über eine Leitung gesendeten Bytes in einem seriellen Übertragungsprotokoll oder in einem Stream (zB einem Audiostream).

Höchstwertigen Bits erste bedeutet , dass das höchstwertige Bit zuerst ankommen wird: daher die hexadezimale Zahl , zB 0x12, 00010010in binärer Darstellung, wird als Folge ankommen 0 0 0 1 0 0 1 0.

Das niedrigstwertige Bit zuerst bedeutet, dass das niedrigstwertige Bit zuerst ankommt: also wird zB dieselbe Hexadezimalzahl 0x12, wiederum 00010010in binärer Darstellung, als (umgekehrte) Sequenz ankommen 0 1 0 0 1 0 0 0.

LSB 0-Bit-Nummerierung

LSB 0: Ein Container für eine 8-Bit-Binärzahl, wobei dem hervorgehobenen niederwertigsten Bit die Bitnummer 0 zugewiesen wird

Wenn die Bitnummerierung für das niedrigstwertige Bit (LSB) bei Null beginnt, wird das Nummerierungsschema "LSB 0" genannt. Diese Bitnummerierungsmethode hat den Vorteil, dass für jede vorzeichenlose Zahl der Wert der Zahl durch Exponentiation mit der Bitzahl und einer Basis von 2 berechnet werden kann . Der Wert einer vorzeichenlosen binären Ganzzahl ist daher

wobei b i den Wert des Bits mit der Nummer i bezeichnet und N die Gesamtzahl der Bits bezeichnet.

MSB 0-Bit-Nummerierung

MSB 0: Ein Container für eine 8-Bit-Binärzahl, wobei dem hervorgehobenen höchstwertigen Bit die Bitnummer 0 zugewiesen wird

Wenn die Bitnummerierung für das höchstwertige Bit (MSB) bei Null beginnt, wird das Nummerierungsschema ähnlich "MSB 0" genannt.

Der Wert einer vorzeichenlosen binären Ganzzahl ist daher

Sonstiges

Der Elem- Operator von ALGOL 68 ist effektiv "MSB 1-Bit-Nummerierung", da die Bits von links nach rechts nummeriert sind, wobei das erste Bit (Bits Elem 1) das " höchste Bit" ist und der Ausdruck (Bits Elem Bits Breite) das "niedrigstwertige Bit" geben. Ähnlich, wenn Bits (Typumwandlung) in ein Array von dazu gezwungen werden Boolean ([] bool Bits), das erste Element dieses Arrays (Bits [ lwb Bits]) ist wieder der "most significant bit".

Für die MSB 1-Nummerierung ist der Wert einer vorzeichenlosen binären Ganzzahl

PL/I nummeriert BIT- Strings, beginnend mit 1 für das ganz linke Bit.

Die Fortran BTEST- Funktion verwendet die LSB 0-Nummerierung.

Verwendungszweck

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

Der empfohlene Stil für Request for Comments (RfC)-Dokumente ist die Bitnummerierung "MSB 0".

Die Bitnummerierung ist normalerweise für die Software transparent , aber einige Programmiersprachen wie Ada und Hardwarebeschreibungssprachen wie VHDL und Verilog ermöglichen die Angabe der geeigneten Bitreihenfolge für die Datentypdarstellung.

Siehe auch

Verweise

Externe Links