go06 整数

简介: go06 整数

go06 整数

Go 语言里的整数类型


Go 提供了 10 种整数类型:

  • 不可以存小数部分
  • 范围有限
  • 通常根据数值范围来选取整数类型

5 种整数类型是有符号的

  • 能表示正数、0、负数

5 种整数类型是无符号的

  • 能表示正数、0

例 1:

  • 最常用的整数类型是 int:



0438d48befd5426a813fc3b63750c0e0.png



无符号整数类型是 uint:


  • 例 2:使用类型推断



8 种整数类型

整数类型,包括有符号和无符号的,实际上一共是 8 种类型:

  • 他们的取值范围各不相同。
  • 与架构无关

27a2c2c3bca9475eba2e860d599806ea.png


int 和 uint


而 int 和 uint 是针对目标设备优化的类型:


在树莓派 2、比较老的移动设备上,int 和 uint 都是 32 位的。


在比较新的计算机上,int 和 uint 都是 64 位的。


虽然在某些设备上 int 可以看作是 int32,在某些设备上 int 可以看作是 int64,但它们其实是 3 种不同的类型。


int 并不是其它类型的别名,uint 同理。


打印数据类型

打印数据类型

在 Printf 里使用 %T 就可以打印出数据的类型。



uint8

uint8 可以用来表示 8 位的颜色(红绿蓝:0-255)。

为什么不使用 int ?


  • uint8 的取值范围正好合适,而 int 则多出来几十亿不合理的数。
  • 如果很多颜色数据连续存储,例如未被压缩的图片,那么使用uint8 可以节省很多内存。


十六进制表示法

Go 语言里,在数前面加上 0x 前缀,就可以用十六进制的形式来表示数值。

打印十六进制


打印十六进制的数,使用 %x 格式化动词:

也可以指定最小宽度和填充:


ea527ef062bb4bf3a2065dc13c9ff9d9.png


33c815b7a53343d3a66f115b87d3a5f2.png


整数环绕

所有的整数类型都有一个取值范围,超出这个范围,就会发生“环绕”。


38728fa6569a43e787be17783321bb7e.png



打印每个 bit

使用 %b 格式化动词。



整数类型的最大、最小值

math 包里,为与架构无关的整数类型,定义了最大、最小值常量:

而 int 和 uint 没有定义最大值最小值,因为它们可能是 32 或 64 位的。

【上一讲】go05 实数

【下一讲】go07 很大的数

目录
相关文章
|
2月前
|
Go
Go的数据类型
Go的数据类型
14 0
|
2月前
|
Go
Go的数值型
Go的数值型
11 1
|
5月前
|
Go
Go 运算符
运算符用于对变量和值执行操作。 加号运算符(+)将两个值相加,如下面的示例所示: 示例代码:
92 2
|
7月前
|
存储 Go
Go学习笔记-Go 浮点数设计原理
Go学习笔记-Go 浮点数设计原理
57 0
|
9月前
|
存储 Go 开发者
GO的几种不同类型
7种基本类型
54 0
|
11月前
|
Go
go05 实数
go05 实数
47 1
|
11月前
|
存储 自然语言处理 编译器
go07 很大的数
go07 很大的数
49 0
Golang:go-hashids从整数生成短唯一ID
Golang:go-hashids从整数生成短唯一ID
166 0
|
存储 安全 IDE
浅谈Go的数据类型及数组
浅谈Go的数据类型及数组
126 0
|
程序员 Go 索引
Go 数组详解和实战
数组是存放元素的容器,Go语言中数组的长度是数组类型的一部分,定义数组时必须指定存放元素的类型和容量(长度)
Go 数组详解和实战