0

(((时间戳 - 1288834974657)<< 32)

我包含了一些更多的位信息,例如需要时间戳信息后总共32位,那么时间戳需要左移32位,使得结果超过long.max值。结果显示负值,例如 -7187691577906700288,这是错误的。

希望我正确地描述了我的问题。请帮忙...

4

1 回答 1

1

我不太了解雪花(我认为它是一种语言?)我也不知道时间戳是什么格式。如果 1288834974657 是一个 unix 时间戳,则它在 42811 年。

问题是这个特定的时间戳大于 32 位。由于您将其再上移 32 位,因此您的号码会溢出。看起来long您的语言中的 可能是无符号的,这意味着最大数字可能是 2^63-1。如果long是无符号的,则最大数可能是 2^64-1。

于 2018-03-02T08:46:24.783 回答