一开始直接上图,直观的看下基本数据类型
整型
表格表示
类型 | 有无符号 | 占用的存储空间 | 数值范围 | 描述 |
---|---|---|---|---|
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 | |
byte | 无 | 1字节,与int8等价 | 0 ~ 255 | byte也用来存储字符 |
rune | 有 | 4字节 | 同int32 | 相当于 Unicode下的 int32 |
uint8 | 无 | 1字节 | 0 ~ 255 | |
uint16 | 无 | 2字节 | 0 ~ 65535 | |
uint32 | 无 | 4字节 | 0 ~ 4294967295 |
用"math"包中的常量打印出整型的范围
官方文档的截图
示例代码
package main
import (
"fmt"
"math"
)
func main(){
fmt.Println("int8 min = ", math.MinInt8, " int8 max = ", math.MaxInt8)
fmt.Println("int16 min = ", math.MinInt16, " int16 max = ", math.MaxInt16)
fmt.Println("int32 min = ", math.MinInt32, " int32 max = ", math.MaxInt32)
fmt.Println("int64 min = ", math.MinInt64, " int64 max = ", math.MaxInt64)
fmt.Println("Uint8 max = ", math.MaxUint8)
fmt.Println("Uint16 max = ", math.MaxUint16)
fmt.Println("Uint32 max = ", math.MaxUint32)
//fmt.Println(" Uint64 max = ", math.MaxUint64)
}
在官方文档中,Uint64是有的,但是在我本机中,我打印就溢出,所以这个还需要你们在这里的电脑中测试一下,是否能打印处理来
用"unsafe"包打印整型的存储大小
官方文档的截图
示例代码
package main
import (
"fmt"
"unsafe"
)
func main(){
var sizeofInt8 int8
var sizeofInt16 int16
var sizeofInt32 int32
var sizeofInt64 int64
fmt.Println("int8 所占的字节数 = "