Swift:两个最大整数之和

时间:2014-06-08 18:14:02

标签: integer swift

我正在玩swift的整数。有一个奇怪的:

let uIntMax8 = UInt8.max
let uIntMax16 = UInt16.max
let sumInt32: Int32 = Int32(uIntMax16 + UInt16(uIntMax8))
sumInt32

swift无法为我计算sum。 那是为什么?

2 个答案:

答案 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