跳至内容

整数

有五种带符号整数类型和五种无符号整数类型

类型 长度 最小值 最大值
Int8 8 -128 127
Int16 16 −32,768 32,767
Int32 32 −2,147,483,648 2,147,483,647
Int64 64 −263 263 - 1
Int128 128 −2127 2127 - 1
UInt8 8 0 255
UInt16 16 0 65,535
UInt32 32 0 4,294,967,295
UInt64 64 0 264 - 1
UInt128 128 0 2128 - 1

整数字面量是一个可选的 +- 符号,后跟一个数字和下划线的序列,可选地后跟一个后缀。如果不存在后缀,则字面量的类型为 Int32(如果值适合 Int32 的范围),否则为 Int64Int64 范围之外的整数必须始终带后缀

1 # Int32

1_i8   # Int8
1_i16  # Int16
1_i32  # Int32
1_i64  # Int64
1_i128 # Int128

1_u8   # UInt8
1_u16  # UInt16
1_u32  # UInt32
1_u64  # UInt64
1_u128 # UInt128

+10 # Int32
-20 # Int32

2147483647  # Int32
2147483648  # Int64
-2147483648 # Int32
-2147483649 # Int64

9223372036854775807     # Int64
9223372036854775808_u64 # UInt64

大于 Int64 最大值但在 UInt64 范围内可表示的无后缀整数字面量已弃用,例如 9223372036854775808

后缀之前的下划线 _ 是可选的。

可以使用下划线 _ 使某些数字更易读

1_000_000 # better than 1000000

二进制数以 0b 开头

0b1101 # == 13

八进制数以 0o 开头

0o123 # == 83

十六进制数以 0x 开头

0xFE012D # == 16646445
0xfe012d # == 16646445