走入Golang (2) | 青训营

80 阅读2分钟

今天我们来看一看Go语言中的第二部分——数据类型中的整数类型和浮点类型。我们在学习每一门编程语言中都会接触到数据类型,不同的数据类型面对的使用情况也不相同。Go语言中的数据类型可以分为如下图所示:

image.png

一、整数类型

整数类型介绍:

简单的说,就是用于存放整数值的,比如10,-45,6712等等。

(1)有符号整数类型: image.png PS:那么127怎么算出来的? 01111111 -->二进制 ---》转为十进制:

   12^6   +   12^5  +  12^4  +   12^3  +   12^2  +   12^1  +    1*2^0

 = 64      +   32         +    16          +   8        +      4       +    2     +   1

= 127

PS:-128怎么算出来的?

10000000 --->二进制 --->一看就是个负数 

10000000 --》负数的二进制

减1:01111111

取反:10000000     ---》得到一个正数    2^7 = 128

加负号:-128

(二进制中最高位的0或1通常表示数字的正或负,在这里我们为了方便理解和记忆,并没有使用反码进行书写。)

(2)无符号整数类型: image.png 表数范围的边界计算:

11111111= 2^7+127 = 128 + 127 = 255

00000000 = 0 

(3)其他整数类型: image.png PS:Golang的整数类型,默认声明为int类型

(4)这么多整数类型,使用的时候该如何选择呢?

Golang程序中整型变量在使用时,遵守保小不保大的原则, 即:在保证程序正确运行下,尽量使用占用空间小的数据类型

二、浮点类型

浮点类型介绍:简单的来说,就是用于存放小数值的,比如3.14、0.28、-7.19等等。  

(1)浮点类型种类: image.png PS:底层存储空间和操作系统无关

PS:浮点类型底层存储:符号位+指数位+尾数位,所以尾数位只是存了 一个大概,很可能会出现精度的损失。

(2)注意:

 1)我们在定义的时候既可以定义为正浮点数,也可以定义为负的浮点数,如:var num1 float32 = 3.14或var num1 float32 = -3.14

2)浮点数可以用十进制表示形式,也可以用科学计数法表示形式  E 大写小写都可以的,如:var num6 float64 = 314e+2

3)浮点数可能会有精度的损失,所以通常情况下,建议使用:float64

4)golang中默认的浮点类型为:float64