4.Go语言基本类型 —— 整型

数值类型
Go语言的数值类型包括几种不同大小的整数、浮点数和复数。每种数值类型都决定了对应的大小范围和是否支持正负符号。

整型类型
让我们先从整型类型开始介绍。

有符号类型
Go语言同时提供了有符号和无符号类型的整数运算。这里有int8、int16、int32和int64四种截然不同大小的有符号整数类型,分别对应8、16、32、64bit大小的有符号整数。
在这里插入图片描述

无符号类型
与此对应的是uint8、uint16、uint32和uint64四种无符号整数类型。
这里还有两种一般对应特定CPU平台机器字大小的有符号和无符号整数int和uint;其中int是应用最广泛的数值类型。这两种类型都有同样的大小,32或64bit,但是我们不能对此做任何的假设;因为不同的编译器即使在相同的硬件平台上可能产生不同的大小。
在这里插入图片描述

Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。这两个名称可以互换使用。同样byte也是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数。
在这里插入图片描述
最后,还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针。uintptr类型只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。

不管它们的具体大小,int、uint和uintptr是不同类型的兄弟类型。其中int和int32也是不同的类型,即使int的大小也是32bit,在需要将int当作int32类型的地方需要一个显式的类型转换操作,反之亦然。

其中有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从 − 2 n − 1 -2^{n-1} 2n1 2 n − 1 − 1 2^{n-1}-1 2n11。无符号整数的所有bit位都用于表示非负数,值域是0到 2 n − 1 2^n-1 2n1。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。
在这里插入图片描述
说明和小结

  1. 整数有符号的类型有 4种 int8 int16 int32 int64
  2. 他们的区别主要是在可以表示(存储)的数的范围
  3. 范围 int8[1个字节] < int16[2个字节] < int32[4个字节] < int64[8个字节]
  4. 简单分析一把 int8的范围为什么是 -128~ 127 ,看示意图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    整型的使用细节
  5. Golang各整数类型分:有符号和无符号,int uint 的大小和系统有关。
  6. Golang的整型默认声明为 int 型
  7. 如何在程序查看某个变量的字节大小[unsafe.Sizeof()]和数据类型 [%T](使用较多)
  8. Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行下,尽量使用占用空间小的数据类型。【如:年龄】
  9. bit[位]: 计算机中的最小存储单位。byte:计算机中基本存储单元。[二进制再详细说】1byte = 8 bit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值