go语言如何声明切片(Go语言基础整型)

go语言如何声明切片(Go语言基础整型)(1)

整型概述
  • 在Go语言中可以进行数学运算的的类型分为整型和浮点型
  • 所有的整数数字存储到整型中就可以进行数学运算

整型和整型运算的结果还是整型(5/2=2)

都是整型,但是int8和int16之间不可以进行运算,必须先进行类型转换

  • 整型分为有符号整型和无符号整型

有符号整型,有正整数和负整数,其二进制最高位表示符号,0为正数,1为负数,int和intx为有符号整型

//int8 举例 0000 0010 = 2 //起始数字0,表示正数,数值为 1X2^1=2 1000 0010 = -2 //起始数字1,表示负数 ,数值为 -1X2^1=-2

无符号整型,只能取大于等于0的整数,其二进制最高位表示数字,无特殊含义。unit和unitx为无符号整型

//uint8 举例 0000 0010 = 2 //数值为 1X2^1=2 1000 0010 = 130 //数值为 1X2^7 1X2^1=128 2=130

整型取值范围和作用

有符号整数统一公式为

-2的n-1次方~2的n-1次方减一

无符号整数统一公式为

0到2的n次方减一

类型

取值范围

int8

[-128,127] //有符号整型,[2^(8-1), 2^(8-1) - 1],以下有符号整型同样计算方法

int16

[-32768,32767]

int32

[-2147483648,2147483647],Go语言中没有字符类型,所有字符都使用int32存储

int64

[-9223372036854775808,9223372036854775807]

int

受限于计算机系统,系统多少位,int就是多少位

uint8

[0,255] //无符号整型,[0, 2^8 - 1],以下无符号整型同样计算方法

uint16

[0,65535]

uint32

[0,4294967295]

uint64

[0,18446744073709551615]

uint

受限于计算机系统,系统是多少位,u

rune

与int32类似,常用在获取值的Unicode码

byte

与int8类似,强调值为原始数据,一个字节占用8个二进制

uintptr

大小不确定,类型取决于底层编程

类型转换
  • Go语言是静态类型语言,并且不具备低精度自动转换向高精度自动转换功能,所以不同类型变量之间相互赋值需要进行类型转换
  • 示例:

func main() { //声明3个类型变量 var a int = 1 var b int32 = 2 var c int64 = 3 fmt.Printf("%T,%T,%T\n",a, b, c) //输出:int,int32,int64 //不同类型之间不能进行数学运算,否则报错,如下所示 //d := a b //fmt.Println(d) //示例代码报错:invalid operation: a b (mismatched types int and int32) //把int32转换为int a = int(b) //将b(原int32)转换为int类型,并且赋值给a(下述示例类似) fmt.Println(a,b) //输出2,2 //把int64转换成int32 b = int32(c) fmt.Println(b, c) //把int转换为int64 c = int64(a) fmt.Println(a, c) }

不同进制整数
  • 支持八进制、十进制、十六进制数字创建整型,最后由系统转换为十进制
  • 不支持二进制值

func main() { //默认表示十进制 d := 17 //0开头表示八进制 o := 021 //0x开头表示十六进制 x := 0x11 //e2表示10的2次方 e := 11e2 //输出 fmt.Println(d, o, x, e) //把变量d中的内容转换为二进制 b := fmt.Sprintf("%b", d) fmt.Println(b) }

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页