Op dinsdag 21 mei 2002 22:30 schreef nronaldvdberg het volgende:
[..]
Die van jou (no offence glimi

)
hah eat your heart out, Glimi!

En hoe delen we dit op een elegante wijze weer op in 2
shorts?
Wij hebben bedacht:
code:
1
2
| hi = (short) a[i] >> 16;
lo = (short) (a[i] << 16) >> 16; |
Gaat dit lukken? En belangrijker nog: kan het eleganter?
Bijna goed.
Die eerste, hi dus, daar moet je de cast naar short pas als laatst doen. Als je m eerst cast, dan maakt ie van de 32 bits dus 16 bits, en dan gaan de bovenste 16 bits verloren (en dat zijn nou juist die bits die je moet hebben). Dus
eerst shiften naar rechts, en dan casten naar short:
code:
1
| hi = (short)(a[i] >> 16); |
Dat gezegd, is het natuurlijk gelijk duidelijk hoe je de onderste 16 bits moet krijgen: door simpelweg de bovenste 16 bits weg te laten. Maw, gewoon casten naar short

: