Не съм сигурен в спецификата на Ruby, но по същество трябва да добавите 2^64, ако числото е отрицателно. Това предполага, че числото е съхранено като допълнение към 2, което почти сигурно е.
FYI, системата за допълване на 2, по същество тя третира (да кажем) 32-битово число като числово модифициране 2^32. Това означава, че -1 е същото като 2^32 - 1 или 0xFFFFFFFF. Това се оказва наистина лесно за използване на хардуерно ниво.