4-2/3整數型別

weixin_34290000發表於2018-04-07

整數型別用於表示整數。

整數型別分為兩種:

 (1)有符號整數型別:可以表示正整數、0和負整數。

 (2)無符號整數型別:只能表示正整數和0,不能表示負整數。

有符號整數型別有五種表示方式:

 (1)Int8:在記憶體中佔8位,第1位是符號位,能表示的整數範圍是:-128(-2的7次方)~ 127(2的7次方減1)。

 (2)Int16:在記憶體中佔16位,第1位是符號位,能表示的整數範圍是:-32768(-2的15次方)~ 32767(2的15次方減1)。

 (3)Int32:在記憶體中佔32位,第1位是符號位,能表示的整數範圍是:-2147483648(-2的31次方)~ 2147483647(2的31次方減1)。

 (4)Int64:在記憶體中佔64位,第1位是符號位,能表示的整數範圍是:-2的63次方~ 2的63次方減1。

 (5)Int:對於32位的作業系統,Int = Int32;對於64位的作業系統,Int = Int64。除非出於記憶體優化、效能調優等考慮,否則,推薦總是使用Int表示有符號整數型別,這有助於程式碼的一致性和互操作性。

無符號整數型別也有五種表示方式:

 (1)UInt8:在記憶體中佔8位,沒有符號位,能表示的整數範圍是:0 ~ 256(2的8次方)。

 (2)UInt16:在記憶體中佔16位,沒有符號位,能表示的整數範圍是:0 ~ 65536(2的16次方)。

 (3)UInt32:在記憶體中佔32位,沒有符號位,能表示的整數範圍是:0 ~ 4294967296(2的32次方)。

 (4)UInt64:在記憶體中佔64位,沒有符號位,能表示的整數範圍是:0 ~ 2的64次方。

 (5)UInt:對於32位的作業系統,UInt = UInt32;對於64位的作業系統,UInt = UInt64。即便知道被儲存的數值是非負的,也推薦使用Int而不使用UInt,這有助於程式碼的一致性和互操作性。

如果被儲存的值超出了變數或常量的資料型別所能表示的數值範圍,程式是可以編譯通過的,但是執行時會出錯。


var i8: Int8 = 15

// 被儲存的值超出了Int8所能表示的數值範圍

// i8 = -129

// 被儲存的值超出了Int8所能表示的數值範圍

// i8 = 128

var ui16: UInt16 = 32618

// 被儲存的值超出了UInt16所能表示的數值範圍

// ui16 = -1

// 被儲存的值超出了UInt16所能表示的數值範圍

// ui16 = 65537

 可以訪問不同整數型別的屬性min和max來得到其最小值和最大值。

Int8.min

Int8.max

UInt16.min

UInt16.max

 如果宣告並初始化整數型別的變數或常量時不指定具體的整數型別,系統預設將該變數或常量推斷為Int型別。

let i =18

// let i: Int = 18


 整數型別的直接數有4種進製表示方式:

 (1)10進位制:預設的進位制

 (2)2進位制:以0b開頭

 (3)8進位制:以0o開頭

 (4)16進位制:以0x開頭


let decimalInt =18

let binaryInt = 0b10010

let octalInt = 0o22

let hexadecimalInt = 0x12


 可以給整數型別的直接數新增若干個0或_,以提高其可讀性。


let readableInt =001_234_56

相關文章