Я не уверен в специфике Ruby, но по сути вам нужно добавить 2 ^ 64, если число отрицательное. Предполагается, что число хранится как дополнение к 2, что почти наверняка так и есть.
К вашему сведению, система дополнения 2, по сути, она обрабатывает (скажем) 32-битное число как число мод 2 ^ 32. Это означает, что -1 - это то же самое, что 2 ^ 32 - 1 или 0xFFFFFFFF. Это оказывается очень простым в использовании на аппаратном уровне.