有没有方法将 long 转换为 int?

3
也许这是一个愚蠢的问题:我意外地将长整型值转换为数据库中的整型值(约1M行),所以有没有办法使用代码将其恢复(而不是恢复数据库)?谢谢。
例如:
我的长整型值:636705792000000000 转换后的整型值:1587019776 ==> 当我只有整型值(1587019776)时,是否有办法找到636705792000000000?

2
不好意思,没有办法恢复你的数据。 - DavidG
2
不对,你损失了一半的数值。如果你将这些值转换为十六进制,你就能清楚地看到数值是如何被去除并且你所损失的是什么。长整型数值 = 0x08D6088B5E980000,整型数值 = 0x5E980000。 - Renatas M.
1
你必须进行恢复,因为你的 long 值超出了 int 的限制。 - Fabulous
DavidG、Reniuz和Fabulous:感谢你们的帮助。 - Hoang Tran
1个回答

7
抱歉,很遗憾你已经失去了一半的数据。如果将这些数字转换为二进制,可能会更加明显:
636705792000000000 => ‭1000110101100000100010001011010111101001100000000000000000001587019776 =>                             ‭01011110100110000000000000000000

请注意,long的右半部分与int完全相同。然而,您已经完全失去了左半部分。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接