Swift 3 尝试分配 64 位整数时 uint64 溢出
Swift 3 uint64 overflows when trying to assign 64 bit integer
我正在尝试在 Swift 中实现位板,并试图将 64 位整数存储到 UInt64 中并出现溢出错误。
var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64;
Integer Literal '100000000000000000000000000000000000000000000000000000000000' overflows when stored into 'UInt64'
我猜发生了什么事 Swift 将数字视为十进制整数,然后尝试将其转换为最终大于 64 位的二进制数。
谁能解释一下我将如何做到这一点。
谢谢
你是对的。 Swift 默认情况下将数字视为十进制。
因此 let i: UInt64 = 0100
的十进制值为 100。
如果要在Swift中使用二进制数,请使用0b
前缀:
let j: UInt64 = 0b0100
的十进制值为 4。
我正在尝试在 Swift 中实现位板,并试图将 64 位整数存储到 UInt64 中并出现溢出错误。
var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64;
Integer Literal '100000000000000000000000000000000000000000000000000000000000' overflows when stored into 'UInt64'
我猜发生了什么事 Swift 将数字视为十进制整数,然后尝试将其转换为最终大于 64 位的二进制数。
谁能解释一下我将如何做到这一点。 谢谢
你是对的。 Swift 默认情况下将数字视为十进制。
因此 let i: UInt64 = 0100
的十进制值为 100。
如果要在Swift中使用二进制数,请使用0b
前缀:
let j: UInt64 = 0b0100
的十进制值为 4。