Они берут 64 бита со всеми нулями, для каждой части id сдвигают ее на нужное количество бит, чтобы справа оказались нули. Потом делают побитовое ИЛИ с теми 64 битами вначале.
Сдвиг делается не для тех 64 бит, которые вконце будут отдаваться, а для частей id, вроде time stamp и shard id. Потом каждая из этих частей (уже сдвинутая) добавляется в оригинальные 64 бит с помощью ИЛИ