0

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

var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64;

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

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

有人可以解释一下我会怎么做。谢谢

4

1 回答 1

2

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

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

于 2016-11-15T20:13:03.653 回答