Hallo und danke für deine Antwort,
ich habe nun den Shift mit den Klammern gesetzt und die Verwechslung von aNew und bNew entschärft.
Das "0x10000000" ist leider eine Vorgabe, auf die ich keinen Einfluss habe.
Nun meine Frage: Wie muss ich "0xffff0000" bei aNew denn abändern, damit ich die wieder die 3 herausbekomme?
Ich habe einige Kombinationen versucht, aber bekomme stets nicht das Richtige heraus.
C#-Quelltext
1: 2: 3: 4: 5:
| ushort a = 3; ushort b = 2; int number = (0x10000000 | (a << 16)) | b; ushort bNew = (ushort)(number & 0x0000ffff); ushort aNew = (ushort)(number & (0xffff0000 >> 16)); |
Danke und lg,
mannyk