2 8Bit Zahlen in eine 16Bit Zahl
-
Ich wollte mal fragen, wie ich 2 8Bit Zahlen in eine 16Bit Zahl schreiben und auch wieder auslesen kann.
Danke
-
w = b1 << 8 | b2;
b1 = w >> 8;
b2 = w & 255;(nur wenn alles unsigned ist)
-
Ok,
da kommen noch 2 neue Fragen:
Wie mache ich es, wenn ich auch signed habe?
Geht das analog auch für andere Zahlen?Danke
-
Dann konvertierst du sie vorher in unsigned. Das Rechtsverschieben von signed hat jedenfalls kein vom Standard festgelegtes Verhalten. Aber du könntest auch gut fahren, wenn du es so machst: b1 = (w >>
& 255; Damit erschlägst du auf jeden Fall logisches und arithmetisches Verschieben. Viel mehr Möglichkeiten wirds wohl auch nicht geben.
-
char a8,b8;
short a16=0;//rein tun
char* c = (char*) &a16;
*c=a8;
++c;
c=b8;
//rausholen andersum:
c= (char) &a16;
a8= *c;
++c;
b8 = *c;
-
@Bashar
Wunderbar, funktioniert bestens.DANKE