Chcę przechowywać dwa ints w długim (zamiast konieczności tworzenia nowego obiektu Point
za każdym razem).Java przechowywanie dwóch ints w długim
Obecnie próbowałem tego. To nie działa, ale nie wiem co jest nie tak:
// x and y are ints
long l = x;
l = (l << 32) | y;
A ja dostaję wartości int tak:
x = (int) l >> 32;
y = (int) l & 0xffffffff;
Ach, to ma sens. Mam jedno pytanie, czy ma to znaczenie, jeśli używasz bitmask używając długiego 0xffffffffL lub int 0xffffffff. – LanguagesNamedAfterCofee
@LanguagesNamedAfterCofee Tak, to ma znaczenie, jeśli zamaskujesz '0xffffffff' (bez L), to jest to tylko int, więc' & 'jest bez op, a' y' * nadal dostaje znak rozszerzony *. – harold
OK, dziękuję za wyjaśnienie! – LanguagesNamedAfterCofee