golang 整型
前言
- 不做文字的搬运工,多做灵感性记录
- 这是平时学习总结的地方,用做知识库
- 平时看到其他文章的相关知识,也会增加到这里
- 随着学习深入,会进行知识拆分和汇总,所以文章会随时更新
- 参考的文章过多、很杂很乱,所以参考会写不全,见谅
整型
- 简单说就是存放整数的
- 整型分为有符号、无符号,int 和 uint 的大小和系统有关
- 默认类型是 int
1.分类
长度 : int - 8,16,32,64
有无符号 : uint int
2.类型
类型 | 符号(正负号) | 占用储存空间 | 表数范围 |
---|---|---|---|
int8 | 有 | 1字节 | |
int16 | 有 | 2字节 | |
int32 | 有 | 4字节 | |
int64 | 有 | 8字节 | |
uint8 | 无(从0开始) | 1字节 | |
uint16 | 无(从0开始) | 2字节 | |
uint32 | 无(从0开始) | 4字节 | |
uint64 | 无(从0开始) | 8字节 | |
uintptr | 无符号整数类型,没有指定具体bit大小,但足以容纳指针 | ||
rune | |||
byte | 8bit |
3.类型补充
类型 | 有无符号 | 系统 | 所占储存空间 | 表数范围 | 备注 |
---|---|---|---|---|---|
int | 有 | 32位系统 | 4个字节 | ||
有 | 64位系统 | 8个字节 | |||
uint | 没有 | 32位系统 | 4个字节 | ||
没有 | 64位系统 | 8个字节 | |||
rune | 有 | 与int32一样 | 等价与int32,便是一个uincode码 | ||
byte | 没有 | 与int8一样 | 当储存字符时选用byte |
-
使用细节
-
uintptr 通常在底层编程时才使用,特别是函数库或操作系统接口相交互的地
-
Golang程序中整型变量在使用时,遵守保小不保大的原则,
即:在保证程序正确运行下,尽量使用占用空间小的数据类型。
-
4.补充:
- int类型的处理速度是最快的
- int、uint和uintptr数值大小有可能相等,但是他们是不同的类型。
int和int32也是不同的类型,把int类型当成int32类型使用必须显示的对类型进行转换 - .在二进制传输、读写文件的结构描述时,为保证文件结构不受到不同编译目标平台字节长度的影响,
不要使用int和uint - go中有符号整数采取2的补码的形式表示,也就是最高bit位表示符号位,
- 一个n-bit的
- 有符号数的取值范围是从-2(n-1)-----2(n-1)-1
- 无符号整数的所有bit位都用于表示非负数,取值范围是0------2^(n-1)
- 一个n-bit的