go 语言数据整数类型及转换

整型转换

在 golang 中整数分为 8位 16位 32位和64位有符号整型和无符号整型

int8    占用1个字节    -128~127
int16    占用2个字节    -32768~32767
int32    占用4个字节    -2147483648~2147483647
int64    占用8个字节    -9223372036854775808~9223372036854775807
uint8    占用1一个字节   0~255
uint16    占用2个字节    0~65535
uint32    占用4个字节    0~4294967295
uint64    占用8个字节    0~18446744073709551615

int 类型

int在32位系统上是4个字节
int在64位系统上是8个字节

int32在哪都是4字节
int64在哪都是8字节

一个转换的例子

package main
import "unsafe"
func main() {
	var a int8 = 10
	var b int16 = 20
	// 转换时建议低转高
	println(int16(a) + b)
	println(unsafe.Sizeof(a))
}