1整数类型
类型 有无符号 占用空间 表数范围
int8 有 1字节 -128~127
int16 有 2字节 -
int32 有 4字节 -
int64 有 8字节 -
类型 有无符号 占用空间 表数范围
uint8 无 1字节 0~255
uint16 无 2字节 0~
uint32 无 4字节 0~
uint64 无 8字节 0~
类型 有无符号 占用空间 表数范围
int 有 32位系统4个字节 /64位系统8个字节 参考上述表格
uint 无 32位系统4个字节 /64位系统8个字节 参考上述表格
rune 有 与int32一样 4字节 -
byte 无 与uint8一样1字节 0~255
整型的使用细节
(1)go语言各整数类型分为:有符号和无符号,int和uint的大小和系统有关。
(2)go语言整型默认声明为int型。
(3)go程序在整型变量的使用中,遵守保小不保大原则,即:在保证正确运行下,尽量使用占空间小的数据类型。{如:年龄这个数据类型我们可以采用byte类型来存储}
查询数据变量的字节大小和数据类型


2小数类型/浮点型
类型 占用空间 表数范围
单精度float32 4字节 -3.403E38~3.403E38
双精度float64 8字节 -1.798E308~1.798E308
浮点数使用细节
(1)浮点数在机器中存放形式:浮点数=符号位+指数位+尾数位
(2)浮点型存储分为三部分,所以在存储过程中尾数部分可能丢失,造成精度损失。
(3)因为float64精度比float32要准确,如果我们要保存一个精度高的数,则应选择float64
(4)go语言的浮点类型有固定的范围和字段长度,不受OS(操作系统)影响。
(5)go语言浮点类型默认声明为float64。
(6)浮点型常量有两种表示形式
十进制数形式 如:6.66 或者 .77(这个等价于0.77)必须有小数点在前面
科学技术法形式 如:
6.666e2 = 6.666 * 10的2次方 即 表示的是666.6这个值
6.666E-2 = 6.666 *10的-2次方 即 表示的是0.06666
从上述两个应该看出e和E的效果是等同的。
3字符类型
go语言中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。


结合两张图,首先我们的byte类型的表数范围为0-255,所以它也就只能输出对应ASCII表(0~255)这个范围内的字符,比如【0-1,a-z等等】可以直接保存到byte,如果我们要保存的字符对应码值大于255,这时我们可以考虑使用int类型保存,从图中可以看到’南'这个字符对应的码值为21335,所以byte这个类型是保存不了的,会产生上溢,所以我这里是使用了int类型来保存'南'这个字符。
字符类型的使用细节
(1)字符常量是用单引号('')括起来的单个字符,例如;var q1 byte='a'
(2)go语言的字符使用UTF-8编码
(3)在go中,字符的本质就是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。
(4)我们也可以直接给某个变量赋值一个数字,然后格式化输出时用%c,会输出该数字对应的unicode字符。
(5)字符类型是可以进行运算的,相当于一个整数,因为字符有对应的UTF-8编码的码值。
字符类型的本质运行
存储:字符->对应码值->二进制->存储
读取:二进制->对应码值->字符->读取