整数类型的基本使用
类型 | 有无符号 | 占用存储空间 | 表数范围 | 备注 |
---|---|---|---|---|
int8 | 有 | 1字节 | -2^7 ~ 2^7-1 | ①有1位是符号位,其他才是数值。 ②二进制的正数比负数少一位, 因为+0和-0都一样, 二进制把-0借到了负数上 |
int16 | 有 | 2字节 | - | |
int32 | 有 | 4字节 | - | |
int64 | 有 | 8字节 | - |
类型 | 有无符号 | 占用存储空间 | 表数范围 | 备注 |
---|---|---|---|---|
unit8 | 无 | 1字节 | 0 ~ 2^8-1 | ①有1位是符号位,其他才是数值。 ②二进制的正数比负数少一位, 因为+0和-0都一样, 二进制把-0借到了负数上 |
unit16 | 无 | 2字节 | 0 ~ 2^16-1 | |
unit32 | 无 | 4字节 | 0 ~ 2^32-1 | |
unit64 | 无 | 8字节 | 0 ~ 2^64-1 |
类型 | 有无符号 | 占用存储空间 | 表数范围 | |
---|---|---|---|---|
int | 有 | 32位系统4个字节 64位系统8个字节 | -2^31 ~ 2^31-1 -2^63 ~ 2^63-1 | |
unit | 无 | 32位系统4个字节 64位系统8个字节 | 0 ~ 2^32-1 0 ~ 2^64-1 | |
rune | 有 | 与int32类似 | -2^31 ~ 2^31-1 | 等价int32,表示一个Unicode码 |
byte | 无 | 与unit8等价 | 0 ~ 2^8-1 | 当要存储字符时选用byte |
整型的使用细节
(1)Golang各整数类型分:有符号和无符号,int unit的大小和系统有关
(2)Golang的整型默认声明为int型
(3)如何在程序查看某个变量的字节大小和数据类型 fmt.Printf
package main
import (
"fmt"
"unsafe"
)
func main(){
var n = 100
fmt.Printf("数据类型是%T",n)
fmt.Printf("占用的字节数是%d",unsafe.Sizeof(n))
}
(4)Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型。
(5)bit:计算机中的最小存储单位。byte:计算机中基本存储单元
1byte = 8bit