精确丢失后从int中恢复很长时间

时间:2015-03-04 21:30:06

标签: algorithm casting int type-conversion long-integer

我继承了一个使用2281534395476并将其错误地转换为906761300整数的应用程序。我希望基本上将其转换回正确的(long)数据类型。

什么是可重现的算法,可以在列表上运行?我正在寻找伪代码或类似的东西,尽管最终结果将用Ruby编写。

1 个答案:

答案 0 :(得分:2)

当已经从long投放到int时,一个人无法获得价值。当您从long投射到int时,您正在丢失一些内容。因此,您无法取回这些位,并且无法通过使用通用算法来获取丢失的long值。

longint使用相同位数的系统中,转换很简单;它只是复制价值。在这种情况下,您可以返回值。

long宽于int的系统上,如果long值不适合int,则转换结果为实现定义。通常发生的是高位比特被丢弃。你的系统似乎就是这个系统。因此,您无法取回long值。