【问题标题】:Swift 3 uint64 overflows when trying to assign 64 bit integerSwift 3 uint64 在尝试分配 64 位整数时溢出
【发布时间】:2016-11-15 20:07:10
【问题描述】:

我正在尝试在 Swift 中实现位板,并尝试将 64 位整数存储到 UInt64 中并得到溢出错误。

var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64;

Integer Literal '100000000000000000000000000000000000000000000000000000000000' overflows when stored into 'UInt64'

我猜发生的情况是 Swift 将数字视为十进制整数,然后尝试将其转换为最终大于 64 位的二进制数。

谁能解释一下我会怎么做。 谢谢

【问题讨论】:

    标签: swift xcode chess integer-overflow bitboard


    【解决方案1】:

    你是对的。默认情况下,Swift 将数字视为十进制。 因此let i: UInt64 = 0100 的十进制值为 100。

    如果您想在 Swift 中使用二进制数,请使用 0b 前缀: let j: UInt64 = 0b0100 的十进制值为 4。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 2014-05-08
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多