Go语言整型

一. 整型概述

  • 在Go语言中可以进行数学运算的类型分为整型和浮点型
  • 所有的整数数字存储到整型中就可以进行数学运算
    • 整型和整型运算的结果还是整型.(5/2=2)
    • 都是整型,但是int8和int16之间不可以进行运算,必须进行类型转换
  • 整型分为有符号整型和无符号整型
  • 有符号整型有正数和负数.其二进制最高位表示符号,0为正数1为负数.int和intx为有符号整型
//int8 举例
0000 0010=2
1000 0010=-2
  • 无符号整型只能取大于等于0的整数.其二进制最高位表示真实数字.unit和unitx为无符号整型
//uint8 举例
0000 0010=2
1000 0010=130
  • 整型取值范围和作用
    • 有符号整数统一公式为:-2的n-1次幂到2的n-1次幂减一
    • 无符号整数统一公式为:0到2的n次幂减一
类型取值范围
int8[-128 , 127]
int16[-32768 , 32767]
int32[-2147483648 , 2147483647] Go语言中没有字符类型,所有字符都使用int32存储
int64[-9223372036854775808 , 9223372036854775807]
int受限于计算机系统,系统是多少位,int为多少位
uint8[0 , 255]
uint16[0 , 65535]
uint32[0 , 4294967295]
uint64[0 , 18446744073709551615]
uint受限于计算机系统,系统是多少位,uint为多少位
rune与int32类似,常用在获取值的Unicode码
byte与uint8类似.强调值为原始数据.一个字节占用8个二进制
uintptr大小不确定,类型取决于底层编程

二.类型转换

  • Go语言是静态类型语言,并且不具备低精度向高精度自动转换功能,所以不同类型变量之间相互赋值需要进行类型转换.
  • 例如:
func main() {
	//声明3个类型变量
	var a int = 1
	var b int32 = 2
	var c int64 = 3
	fmt.Println(a, b, c)

	//把int32转换为int
	a = int(b)
	fmt.Println(a, b)
	a = 1
	
	//把int64转换成int32
	b = int32(c)
	fmt.Println(b, c)
	b = 2
	
	//把int转换为int64
	c = int64(a)
	fmt.Println(a, c)
	c = 3
}

三.不同进制整数

  • 支持八进制,十进制,十六进制数字创建整型,最后由系统转换为十进制
  • 不支持二进制值
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)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书香水墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值