Lösung gesucht
-
Wie realisiere ich folgendes elegant?
0x123456
0x56
0x34
0x12
-
AuLo schrieb:
in=0x123456
a=0x56
b=0x34
c=0x12in=0x123456
a=in&0xff;in>>=8;
b=in&0xff;in>>=8;
c=in/&0xff;in>>=8/;
-
Geht das nicht einfacher, sodass ich einfach nur die Position und den Wert übergebe.
-
AuLo schrieb:
Geht das nicht einfacher, sodass ich einfach nur die Position und den Wert übergebe.
Exaktere Fragestellung bitte. Was soll EIngabe ind Ausgabe sein, vielleich 3-4 Beispiele.
Vielleicht meinste sowas?
uint getByte(uint x,int byteNo){ return (x>>(byteNu*4))&0xff; }
-
2 Zeilen schönstes C:
union { int in; struct { char a,b,c,_; }; } in = { 0x123456 }; printf("%x %x %x\n", in.a, in.b, in.c);
-
Die Lösung ist aber von der Endianness des Rechners abhängig.
-
DirkB schrieb:
Die Lösung ist aber von der Endianness des Rechners abhängig.
Das macht sie wohl so besonders schön.