Swiftの数値型の細かい仕様について書いていきます。
Swiftの数値を表す型
整数
| 型 | 最大値 | 最小値 |
|---|---|---|
| Int | 2147483647 9223372036854775807 |
-2147483648 -9223372036854775808 (実行環境が32bitか64bitによって違う) |
| Int8 | 127 | -128 |
| Int16 | 32767 | -32768 |
| Int32 | 2147483647 | -2147483648 |
| Int64 | 9223372036854775807 | -9223372036854775808 |
| UInt | 4294967295 18446744073709551615 (実行環境が32bitか64bitによって違う) |
0 |
| UInt8 | 255 | 0 |
| UInt16 | 65535 | 0 |
| UInt32 | 4294967295 | 0 |
| UInt64 | 18446744073709551615 | 0 |
小数
| 型 | 長さ |
|---|---|
| Double | 64bit |
| Float | 32bit |
| Float32 | 32bit |
| Float64 | 64bit |
| Float80 | 80bit |
| CGFloat | 32bit/64bit(実行環境が何bitかに依る) |
エイリアス
数値型ではないものもありますが、関連するAliasもまとめてみました。
| 型 | 元クラス |
|---|---|
| CChar | Int8 |
| CChar16 | UInt16 |
| CChar32 | UnicodeScalar(文字列) |
| CInt | Int32 |
| CLong | Int |
| CLongLong | Int64 |
| CShort | Int16 |
| CSignedChar | Int8 |
| CUnsignedChar | UInt8 |
| CUnsignedInt | UInt32 |
| CUnsignedLong | UInt |
| CUnsignedLongLong | UInt64 |
| CUnsignedShort | UInt16 |
| IntegerLiteralType | Int |
| CDouble | Double |
| CFloat | Float |
その他
数値型とは少し違いますが、Bitという1と0を表現する列挙型もあります。
.Zeroと.Oneの2種類の値を取ります。
Swiftのリテラルでできる事
アンダーバーを利用
1_000
0.000_1
2進数・8進数・16進数
0b10001 // → 17
0o21 // → 17
0x11 // → 17
指数
12e2 // → 1200(12 * 10の2乗)
0x10p4 // → 256(16 * 2の4乗)
数値の剰余を求める計算
通常の剰余の求め方です。
5 % 3 // → 2
1 % 3 // → 1
負の数に対する計算も正の値と同様に行えます。
計算結果は左の値の符号に依存します。
-1 % 3 // → -1
-4 % -3 // → -1
7 % -5 // → 2
小数点に対しても行えます。
print(1.1 % 3.1) // → 1.1
print(-3.1 % 3) // → -0.1