【问题标题】:Is there anyway to convert long to int?无论如何将long转换为int?
【发布时间】:2019-01-29 16:41:30
【问题描述】:

也许这是一个愚蠢的问题:我不小心将数据库中的 long 值转换为 int 值(约 1M 行),那么有没有办法使用代码将其恢复回来(不恢复数据库)?谢谢

示例: 我的多头值:636705792000000000

转换后的 Int 值:1587019776

==> 当我只有 int 值(1587019776)时,有什么方法可以找到 636705792000000000

【问题讨论】:

  • 不,没有办法,恐怕你已经丢失了数据。
  • 没有。你损失了一半的价值。如果将值转换为十六进制,您可以清楚地看到该值是如何被剥离的以及您丢失了什么。长值 = 0x08D6088B 5E980000,整数值 = 0x5E980000
  • 您必须恢复,因为您的long 值超出了int 的限制
  • DavidG、Reniuz 和 Fabulous:感谢您的帮助

标签: c# casting integer long-integer


【解决方案1】:

不,恐怕您实际上已经删除了一半的数据。如果将这些数字转换为二进制,可能会更明显:

636705792000000000 => ‭100011010110000010001000101101011110100110000000000000000000‬
        1587019776 =>                             ‭01011110100110000000000000000000‬

注意long 的右半部分如何与int 的整体相同。但是,你已经完全失去了左半边。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2014-03-13
    • 2020-11-21
    相关资源
    最近更新 更多