Вы сказали в комментариях, что y может принимать значение от -65336 до 655536. В этом случае вы должны использовать:
id = x * 131072 + y; // 131072 = 2^17
В противном случае пусть id будет 100000, тогда это можно перевести в две разные координаты:
100000 == 1 * 65536 + 34464 // x = 1, y = 34464
100000 == 2 * 65536 - 31072 // x = 2, y = -31072
Таким образом, если диапазон y составляет от -65536 до 65535 включительно, то вы должны использовать
id = x * 131072 + y;
и для обратного преобразования вы должны использовать решение, которое grc предложил:
x = (id + 65536) / 131072;
y = id - (x * 131072);