Entwickler-Ecke
Basistechnologien - Zwei uint8_t Werte auf uint16_t speichern
Jojojoxx - So 19.10.08 12:14
Titel: Zwei uint8_t Werte auf uint16_t speichern
Hallo!
Ich nutze zur Zeit ein wenig C für einen Mikrocontroller und habe eine einfache Frage, weiß aber nicht, ob sich C und C# darin unterscheiden. Zu meiner Frage.
Ich habe zwei Variablen des Typs uint8_t, also 8-Bit Integers. Nun möchte ich beide Zahlen hintereinander auf einer uint16_t (also 16-Bit) speichern.
Aus z.b. 01100011 und 11010010 soll 0110001111010010 werden, und es soll also keine Addition der beiden Zahlen stattfinden. Mit welchem Operator ist das möglich?
Danke euch!
mfg
Jojo
jaenicke - So 19.10.08 12:28
C#-Quelltext
1: 2: 3:
| uint8_t a = 111; uint8_t b = 121; uint16_t c = a + (b << 8); |
Jojojoxx - So 19.10.08 12:37
Alles klar!
Vielen Dank für deine Hilfe!
mfg
Jojo
Jojojoxx - Mo 20.10.08 20:21
Eine Frage hab ich doch noch dazu. Ein Bitshift um 8 Stellen bei einer 8-Bit Variable müsste doch keine Auswirkung haben, oder? In dem Fall bei (b << 8 )
jaenicke - Di 21.10.08 01:41
Es ist keine Bitrotation, zumindest wäre mir neu, wenn das die Operationen machen würden, dafür gibt es Rotationsbefehle in Assembler. Schiebst du eine 8-Bit-Variable um 8 Bit sollte sie 0 sein.
Aber ausprobiert habe ich das nicht, warum tust du das nicht einfach? ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!