🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 整型 整型分为以下两个大类: - 有符号(int8, int16, int32, int64) - 无符号(uint8, uint16, uint32, uint64) - 特殊类型(int, uint) | 类型 | 数值范围 | 类型 | 数值范围 | | :-: | :-: | :-: | :-: | | int8 | -128~127 | uint8 | 0~255 | | int16 | -32768~32767 | uint16 | 0~65535 | | int32 | -2147483648~2147483647 | uint32 | 0~4294967295 | | int64 | -9223372036854775808~9223372036854775807 | uint64 | 0~18446744073709551615 | 特殊类型(int, uint): - 在64位操作系统下。int就是int64,uint就是uint64 - 在32位操作系统下。int就是int32,uint就是uint32 `go env GOARCH` :可以看到底层架构 1. 定义整型变量 >[warning] Go语言变量不能直接定义二进制数字 > 可以通过定义十进制数,然后转换成二进制数字 ```go // 十进制 var i10 int i10 = 16 fmt.Println(i10) // 16 // 八进制(以数字0开头) var i8 int i8 = 017 fmt.Println(i8) // 15 // 十六进制(以0x开头) i16 := 0x12 fmt.Println(i16) // 18 ``` 2. 查看变量 ```go age := 18 // %d打印age对应十进制数 fmt.Printf("age is %d\n", age) //age is 18 // %b打印age对应二进制数 fmt.Printf("age is %b\n", age) //age is 10010 // %o打印age对应八进制数 fmt.Printf("age is %o\n", age) //age is 22 // %x打印age对应十六进制数 fmt.Printf("age is %x\n", age) //age is 12 ``` 3. 修改变量值 ```go age := 16 //简短声明变量并赋值 fmt.Printf("age is %d\n", age) //age is 16 age = 22 //修改变量值 fmt.Printf("age is %d\n", age) //age is 22 ``` # 浮点型 浮点型有两个类型,分别为 `float32` 和 `float64`。 查看两种类型的最大范围 ```go package main import ( "fmt" "math" ) func main() { fmt.Println(math.MaxFloat32) //3.4028234663852886e+38 fmt.Println(math.MaxFloat64) //1.7976931348623157e+308 } ``` 定义赋值与修改 ```go var f1 float64 = 3.14 fmt.Printf("f1 is %f, f1 type is %T\n", f1, f1) //f1 is 3.140000, f1 type is float64 f2 := float32(9.8) fmt.Printf("f2 is %f, f2 type is %T\n", f2, f2) //f2 is 9.800000, f2 type is float32 // %.nf,n是一个数字代表。表示保留n位小数,四舍五入原则 f2 = 1.23456789 fmt.Printf("f2 is %.2f\n", f2) //f2 is 1.23 fmt.Printf("f2 is %.3f\n", f2) //f2 is 1.235 ``` # Printf占位符 总结这里出现的占位符 | 占位符 | 描述 | | :-: | :-: | %d | 十进制数字 | | %b | 二进制数字 | | %o | 八进制数字 | | %x | 十六进制数字 | | %f | 浮点型数字(保留6位小数) | | %.nf | 保留n位的小数(四舍五入) | | %T | 变量的类型 | # 思考 问题一: ```go var i1 int8 = 16 i2 := int8(22) var i3 int = 24 // 思考:下面两个赋值是否可以呢? i1 = i2 i1 = i3 ``` 问题二: ```go // 思考:f32和f64两个变量是否相等呢? var f32 float32 = 1.23 var f64 float64 = 1.23 ```