# 整数/Integer

整型表示数字整数,共分为两类:

  • 有符号整型: 可以表示正负
  • 无符号整型: 不能区分正负

整型在内存中的表示包含两个部分:

  • 符号位:记录正负
  • 数字位:记录数值

# 有符号整型

类型 长度(字节数) 值范围
int8 1 -128 ~127
int16 2 -32768~32767
int32 4 -2147483648~2147483647
int64 8 -9223372036854775808~9223372036854775807
int 在 32 位平台为 4,在 64 位平台为 8 在 32 位平台等同于 int32,在 64 位平台等同于 int64

# 无符号整型

类型 长度(字节数) 值范围
uint8 1 0~255
uint16 2 0~65535
uint32 4 0~4294967295
uint64 8 0~18446744073709551615
uint 在 32 位平台为 4,在 64 位平台为 8 在 32 位平台等同于 uint32,在 64 位平台等同于 uint64

# 定义整型

例子:定义整型

var age uint8
age = 18

var income int
income = -1000

# 转换陷阱

注意!不同类型的整型无法互相赋值,需要做类型转换。其中位数长的类型转换为位数短的类型,或者无符号的类型转换为有符号的类型时,会丢失准确性
例子:整型类型转换

var v1 int = 24
var v2 int32
v2 = int32(v1)