您正在遇到整数溢出!您最多只能使用
uint的大小进行计算
uint;一旦您超越了它的界限,它将(无声地)再次绕回原处。
在您的情况下,看起来a的
uint长度为64位。(其大小取决于您所运行的平台。)这意味着您最多可以存储2 64
-1的值。如果再添加一个,它将回零,并且不会返回错误。
如果将得到的答案和正确的答案转换为十六进制,那么您会发现情况确实如此。你最终以
33DB76A7C594BFC3
正确的答案是
1333DB76A7C594BFC3
请注意,就目前而言,您的答案是正确的……只是远远不够。您只得到答案的低64位。您错过了其他13 * 2 64。
要更正它,您需要使用Package big中的任意大小的整数,而不是
uint。



