2016-11-15 79 views
0

我試圖在Swift中實現位板,並試圖將一個64位整數存儲到UInt64中,併發生溢出錯誤。Swift 3 uint64在嘗試分配64位整數時溢出

var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64; 

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

我猜會發生什麼情況是,斯威夫特把數量爲十進制整數,然後嘗試將其轉換爲這最終比64位大的二進制數。

有人可以請解釋我將如何做到這一點。 謝謝

回答

2

你說得對。 Swift默認將數字視爲小數。 因此let i: UInt64 = 0100將十進制值100

如果你想使用斯威夫特二進制數,使用0b前綴: let j: UInt64 = 0b0100將有4

一個十進制值