整数类型
2022-01-24 大约 1 分钟
简单的说,就是用于存放整数值的,比如10,-45,6712等等。
# 有符号整数类型
类型 | 有无符号 | 占用存储空间 | 表数范围 |
---|---|---|---|
Int8 | 有 | 1字节 | -2^7 ~2^7-1(-128~127) |
int16 | 有 | 2字节 | -2^15 ~2^15-1(-32768~32767) |
int32 | 有 | 4字节 | -2^31 ~2^31-1(-2147483648~2147483647) |
int64 | 有 | 8字节 | -2^63 ~2^63-1 |
为什么int8取值范围是-128 - 127?
int8占1个字节,1字节(byte)占8位(bit),其中最高位代表符号位 1-负号;0-正号
那么最大数值的二进制为: 0 1 1 1 1 1 1 1 换算成10进制为 从低位到高位开始计算 0 1 1 1 1 1 1 1 02^7 + 12^6 + 12^5 + 12^4 + 12^3 + 12^2 + 12^1 + 12^0 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127
最小数值的二进制应与最大数值相反 1 0 0 0 0 0 0 0 换算成10进制为 从低位到高位开始计算 1 0 0 0 0 0 0 0 12^7 + 02^6 + 02^5 + 02^4 + 02^3 + 02^2 + 02^1 + 02^0 128 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 128
相关信息
由于Int8的最大值是127,所以如果你超过了最大值,那么程序会报错
// 代码错误
var num int8 = 300
1
2
2
# 无符号整数类型
类型 | 有无符号 | 占用存储空间 | 表数范围 |
---|---|---|---|
uInt8 | 无 | 1字节 | 0~255 |
uint16 | 无 | 2字节 | 0~2^16-1 |
uint32 | 无 | 4字节 | 0~2^31-1 |
uint64 | 无 | 8字节 | 0~2^63-1 |