Language GO III
本节讲述GO语言的基础数据类型 3.1. 整型 Go语言同时提供了 有符号 和 无符号 类型的整数运算。 有符号整数为 i nt8、int16、int32和int64,对应8、16、32、64bit数值。无符号为:uint8、uint16、uint32和uint64。 最常用的关键字就是int和uint,因为不同platform的不同compiler可能对应32bit或者64bit。 Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。 这两个名称可以互换使用。 byte类型等价于uint8类型,但byte类型一般用于强调数值是一个原始的数据而不是一个小的整数 。 最后,还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针,用于底层编程的接口。 虽然在某些情况下,int和int32同为32bit,但是他们是不同类型,同理第二章的摄氏度华氏度类型,需要一个显式转换才能将int当作int32,反之同理。 有符号整数采用 补码 来表示数字大小,首位作为符号位,当首位为0时,其他为照常计算,当首位为1时,第一位为本位数字的负数,与其他位相机合并计算,故8bit的数字的值域为-128(10000000)到127(01111111)。 而无符号8bit整数的大小为0到255,即8位二进制的最大值,11111111。 下面是Go语言中关于算术运算、逻辑运算和比较运算的二元运算符,它们按照优先级递减的顺序排列: * / % << >> & &^ + - | ^ == != < <= > >= && || 具体的运算原则基本和C语言一致,不再赘述。 以下代码展示了 溢出 ,因为unit8的最大值就是255,所以再次基础上再进行加法乘法计算就会导致计算结果溢出,具体原理要查看二进制补码计算的一些规则,此处不再赘述。 var u uint8 = 255 fmt.Println