一、整数类型概述
Golang的整数类型就是用于存放整数值的,比如 12 , 30, 3456等等。
整数类型分为有符号整数类型和无符号整数类型。
二、有符号整数类型
1、整数有符号的类型有 4种 int8 int16 int32 int64
2、他们的区别主要是在可以表示(存储)的数的范围
3、范围 int8[1个字节] < int16[2个字节] < int32[4个字节] < int64[8个字节]
4、面试题:分析 int8的范围为什么是 -128~ 127 ,看示意图:
总结:
- 在内存中,所有的数都是以二进制的方式存放
- 一个字节(byte)有8位bit
- 在int8 类型来看, 最高位为符号位 1表示负数 0表示正数
- 范围:最大的正整数 0111 1111 =》 127 最大的负整数 1111 1111 =》 -127 0000 0000 ==》+0 1000 0000 ===》-0 ===》 -128。-0 和 0重复了,所以负数多一位到-128。即-128~ 127
三、无符号整数类型
注意:
如果定义一个变量,它不需要取负数,就可以考虑使用无符号的数据类型,比如年龄.
四、整数类型的补充
五、整数类型使用细节和注意事项
1、Golang各整数类型分:有符号和无符号,int uint 的大小和系统有关。
2、Golang的整型默认声明为 int 型
3、程序查看某个变量的字节大小[unsafe.Sizeof()]和数据类型 [%T]
4、Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型。【如:年龄】
5、bit[位]: 计算机中的最小存储单位。byte:计算机中基本存储单元。1byte = 8 bit