Есть такие нюансы. Под большое значение интерпретатор может отожрать столько памяти, сколько посчитает нужным, а компилятор в большинстве случаев должен сразу "знать", сколько места ему отведено под конкретную переменную. Поэтому при переполнении размера просто произойдет усечение с отбрасыванием.
Можно попробовать unsigned, но чтоб за пределы 64бит вылезти, нужны некоторые хитрости, учитывающие границы типа.
Да поправят меня те, кто шарит за это лучше.