Voglio memorizzare due interi in un lungo (invece di dover creare un nuovo oggetto Point
ogni volta).Java che memorizza due interi in un lungo
Attualmente, ho provato questo. Non funziona, ma non so che cosa è sbagliato con esso:
// x and y are ints
long l = x;
l = (l << 32) | y;
e sto ottenendo i valori int in questo modo:
x = (int) l >> 32;
y = (int) l & 0xffffffff;
Ah, questo ha senso. Una domanda che ho è se è importante se si maschera il bit utilizzando il 0xffffffffL lungo o il 0xffffffff int. – LanguagesNamedAfterCofee
@LanguagesNamedAfterCofee yes è importante, se si maschera con '0xffffffff' (senza la L), allora è solo un int, quindi' &' è un no-op e 'y' * ottiene ancora il segno esteso *. – harold
Ok, grazie per la spiegazione! – LanguagesNamedAfterCofee