Stai cercando l'hashing di coordinate? L'equazione normale è:
hash = y * width + x
(nel tuo caso sarebbe probabilmente x * height + y)
Quindi se la tua dimensione di hash è un 32 bit con segno allora sqrt (2.147.483.647) darebbe il valore di larghezza, in questo caso 46340. Questo definisce sono min come (-46340, -46340). Il massimo sarebbe (46340, 46340).
-46340 * 46340 + -46340 = -2,147,441,940 e int minimo firmato a 32 bit è -2,147,483,648
46340 * 46340 + 46340 = 2.147.441.940 e il valore massimo con segno int a 32 bit è 2147483648
Per ampi intervalli di x e y, in genere puoi usare solo un 64 bit.
Se conosci operatori bit a bit, puoi semplicemente assegnare bit bassi e alti a xey. Quindi in un numero a 64 bit memorizzerete la x nella top 32 ey nella parte inferiore 32. Questo genererà un hash che segue le vostre regole.