我正在玩swift的整数。有一个奇怪的:
let uIntMax8 = UInt8.max
let uIntMax16 = UInt16.max
let sumInt32: Int32 = Int32(uIntMax16 + UInt16(uIntMax8))
sumInt32
swift无法为我计算sum
。
那是为什么?
答案 0 :(得分:3)
这是因为uIntMax16 + UInt16(uIntMax8)
无法容纳16位。将任何添加到UInt16.max
将超过16位,几乎可以定义。在进行添加之前,您需要将两个加号转换为UInt32
。
答案 1 :(得分:0)
let uIntMax8 = Int32(UInt8.max)
let uIntMax16 = Int32(UInt16.max)
let sumInt32: Int32 = uIntMax16 + uIntMax8
sumInt32