Was bedeutet "least significant byte" gemeint?
Habe ich, eine Methode zu implementieren, schreibt ein byte in eine ostream
Objekt. Lassen Sie uns gerade genannt diese ostream
Objekt strobj
. Ich habe auch ein bisschen Puffer zum speichern eines byte von Daten, nennen wir es mal:
char &bitter;
In meiner header-Datei, habe ich diese:
void writeThisByte(int sumInt);
Die Betriebsanleitung sagt, dass ich schreiben müssen, das "less significant byte" des int übergeben wird, um eine ostream
Objekt, d.h. strobj
;
Aber ich bin verwirrt über genau das, was das " least significant byte bedeutet.
Bedeutet dies, dass Sie überprüfen, um zu sehen, ob sumInt == 1
? Und wenn es so ist, schreibst du es auf die ostream
so?
strobj.write(&bitter, 1);
Ich bin mir nicht sicher 🙁
- Ich bearbeitet Ihren code, wie ich glaube, es waren zwei Fehler ("less significant byte" und "void riteThi' ich auch aktualisiert, die Formatierung von code. Sie können Rollen zurück, wenn Sie finden es unangemessen. BTW gibt es nicht eine
a
fehlt in 'Ieysu'? - zuerst mal danke für die Bearbeitung meines Codes...zweitens das "rite" absichtlich getan wurde (z.B. für eine Klasse ;)...drittens, HAHA! ja, es ist wohl ein a -:) ..lange Geschichte über ihn, die ich sonst in
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sich einen 32-bit integer, wobei jedes bit kann 0 oder 1 sein, sagen:
Dem niederwertigsten byte ist das 8-bits auf der rechten Seite.
Es ist wahrscheinlich einfacher zu verstehen, wenn man eine Dezimalzahl Beispiel: gegeben sei die Zahl 291023, die '3' ist die am wenigsten signifikante Ziffer, denn wenn Sie es ändern, Sie haben die geringste Wirkung auf die Gesamt-Anzahl.
Um das " least significant byte, nur bitweise UND-Verknüpfung der größere
int
mit 0xFF hex oder 255 dezimal (1+2+4+8+16+32+64+128=255)- klar werden immer mehr-bedeutende bits und bewahren die 8 am wenigsten signifikanten bits...Die Wirkung ist wie folgt:
Ihre
int
bestehen aus mehreren bytes (wahrscheinlich 2, 4 oder 8 bytes). Ähnlich wie das Konzept des least significant bit, das niederwertigste byte ist das byte, das hat weniger Gewicht auf den Wert der gesamten integer. Je nach endianness Ihr system, kann es sein, das erste oder Letzte byte in Bezug auf Speicher.Extrahieren Sie die least significant byte, bitweise UND-Verknüpfung der Zahl mit einem byte-Wert von
1
s, ich. e. 255:Je mehr bits eines
int
sind diejenigen, die dazu beitragen, mehr seinen Wert. Die am wenigsten signifikanten bits beitragen weniger. Sie können in der Regel erhalten diese durch die Verknüpfung der integer mit255
(ein byte mit allen1
s)Wenn man sich eine dezimal-Zahl vor, sagen 507, die least significant Ziffer wäre die 7. Ändern Sie es zu einem 6 oder 8 würde sich ändern, insgesamt ist die Anzahl viel geringer als die änderung der 5.
Aussehen, wenn Sie auf ein Datum, sagen Mai 14, 2013, die least significant Teil ist der Tag (14) in Bezug auf die chronologische bestellen.
Wenn man eine unsigned 32-bit int (4 bytes), wobei der Wert der integer ist
(256^3)*b3 + (256^2)*b2 + 256*b1 + b0
für die 4 bytesb0, b1, b2, b3
, die least significant byte ist das byteb0
.Erhalten Sie die am wenigsten signifikanten byte von Ihrem
int sumInt
by doingchar c = sumInt & 0xFF;
wie andere vorgeschlagen haben.