UINT16 mit UINT32 vergleichen
-
Hi,
ich habe zwei Werte: a von UINT16 und b von UINT32. Beide haben eine Linksausrichtung (left adjusted). Nun möchte ich a mit Bit31 bis Bit16 von b vergleichen. Ist dieser Ausdruck richtig?
If (a >= (UINT16)(b >> 16)){}
Gruss
-
sieht gut aus, ich glaub' den cast kannste dir sparen.
warum probierst du's nicht einfach aus?
-
if (((UINT16*)&b)[1]== a){..}
-
BorisDieKlinge schrieb:
if (((UINT16*)&b)[1]== a){..}
Bist Du sicher? Woher weißt Du, wie das die Plattform anordnet?
-
blanc schrieb:
Hi,
ich habe zwei Werte: a von UINT16 und b von UINT32. Beide haben eine Linksausrichtung (left adjusted). Nun möchte ich a mit Bit31 bis Bit16 von b vergleichen. Ist dieser Ausdruck richtig?
If (a >= (UINT16)(b >> 16)){}
Gruss
was bitte ist left adjusted ?
MfG
adjusting nOOb
-
adjusting nOOb schrieb:
was bitte ist left adjusted ?
er meint bestimmt 'left justified'.
das heisst z.b. wenn in einem 32-bit register nur die linken x-bits (wobei x < 32) benutzt werden.
-
sind die linken bits die niederwertigen ?
-
adjusting nOOb schrieb:
sind die linken bits die niederwertigen ?
das kommt drauf an...
-
adjusting nOOb schrieb:
sind die linken bits die niederwertigen ?
Ja - immer, wie der Prozessor abspeichert (Little-oder Big Endian) spielt bei dieser Frage keine Rolle.
-
willy schrieb:
adjusting nOOb schrieb:
sind die linken bits die niederwertigen ?
Ja - immer
aus C-sicht (und im binärsystem) sind links aber immer die höherwertigen bits.