Предполагая, что X
и Y
оба являются целочисленными значениями и переполнения нет (32-битных значений недостаточно), вы можете использовать, например, (псевдокод)
V = fromXY(X, Y) = (y+65000)*130001+(x+65000)
(X,Y) = toXY(V) = (V%130001-65000,V/130001-65000) // <= / is integer division
(130001
- числоразличных значений для X
или Y
)