数值型
一. 数值引入
例如:我们要存储一个人的年龄,就需要用到数值类型
二. 概述
用于定义证书类型变量的标识符
三. 作用与应用场景
在计算机当中存储数值类型
1. 整数型:
- int8 有符号 8 位整型 (-128 到 127) 长度:8bit
- int16 有符号 16 位整型 (-32768 到 32767)
- int32 有符号 32 位整型 (-2147483648 到 2147483647)
- int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
- uint8 无符号 8 位整型 (0 到 255) 8位都用于表示数值:
- uint16 无符号 16 位整型 (0 到 65535)
- uint32 无符号 32 位整型 (0 到 4294967295)
- uint64 无符号 64 位整型 (0 到 18446744073709551615)
int和uint:根据底层平台,表示32或64位整数。除非需要使用特定大小的整数,否则通常应该使用int来表示整数。大小:32位系统32位,64位系统64位。 范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统。
// 数值申请
var num1 = 100 // int
num2 := 200. // int
var num3 int32 // int32
num4 := 300 // int
// 类型转换
num3 = int32(num4)
fmt.Println(num3) // 300
package main
import "fmt"
func main() {
var num1 = 100 // int
num2 := 200 // int
var num3 int32 // int32
num4 := 300 // int
// 指定类型
var num5 int64 = 123
fmt.Printf("num1=%T", num1) // int
fmt.Printf("num2=%T", num2) // int
fmt.Printf("num3=%T", num3) // int32
fmt.Printf("num4=%T", num4) // int
fmt.Printf("num5=%T", num5) // int64
}
四. 注意事项
- 默认数据类型为int
- int32,int64由于占用空间大小不一样,被认为是不同的类型,所有不能相互赋值
- 不同类型的转换
- 占用字节 unsafe.Sizeof(intVariables)
- 注意使用时数据可能溢出与损失的问题
2. 浮点型
- float32(IEEE-754 32位浮点型数)
- float64(IEEE-754 64位浮点型数)
- complex64(32 位实数和虚数)
- complex128(64 位实数和虚数)
- 十进制形式
package main
import (
"fmt"
"unsafe"
)
func main() {
var num1 float32 = 3.1415926
num2 := .1415926
fmt.Printf("num1的类型=%T,占用的字节大小=%d\n",num1,unsafe.Sizeof(num1))
fmt.Printf("num2的类型=%T,占用的字节大小=%d\n",num2,unsafe.Sizeof(num2))
}
注意:这里用到了main的unsafe包,用于获取数据的字节大小
- 科学计数法展示
num1 := 3.1415926e2 // 3.1415926乘以10的2次方
num2 := 3.1415926e-2 // 3.1415926除以10的2次方
- 不同精度的浮点类型转换
var num1 float32 = 3.14
var num2 float64 = 3.14
num2 = float64(num1)
fmt.Println(num1)
fmt.Println(num2)
- 注意事项
- 默认数据类型为float64
- float32,float64由于占用空间大小不一样,被认为是不同的类型
- 不同类型的转换
- 单精度,双精度类型转换的精度损失与溢出
3. 其他
- byte(类似 uint8)
- rune(类似 int32)
- uint(32 或 64 位)
- int(与 uint 一样大小)
- uintptr(无符号整型,用于存放一个指针)
2. 布尔型
布尔型的值值可以是常量true或者false。一个简单的例子 const a bool = false
var flag bool // 默认是false
flag1 = true // flag1 declared but not used
flag2 := (true == false) // flag2 declared but not used
// false
if 3 == 4 {
fmt.Println("false")
} else {
fmt.Println("true")
}
fmt.Println(!true, !false, !!true) // false true true
注意:
- 只有true和false
- 其他类型不可以转换成布尔类型
最后
刚学golang,希望大家监督并且一起努力 有兴趣的小伙伴,欢迎关注我公众号:小何成长