尝试分配 64 位整数时 Swift 3 uint64 溢出

标签 swift xcode chess integer-overflow bitboard

我正在尝试在 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 前缀: 让 j: UInt64 = 0b0100 的十进制值为 4。

关于尝试分配 64 位整数时 Swift 3 uint64 溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40618745/

相关文章:

ios - AnyObject 到 swift 字符串

ios - 自动布局将 View 设置为屏幕大小

python - 从 Python 上的 pgn 文件中提取移动信息

ios - 显示数据库中的数据 - CoreData 如何走?

algorithm - minimax 算法通过 alpha beta 修剪返回不同的值

Python minimax函数中的深度复制

ios - 将具有多个 subview 的 View 截图为 wkwebview

ios - 尝试从未被点击的 UIImageView 中检测 "touch up"

ios - UiButton 并将 AutoresizingMask 翻译成约束

ios - Game Center 玩家显示名称在沙盒中始终为 "me"