golang中变量的大小溢出会是什么结果呢?
// uint8的取值范围: 0 - 255
var a uint8 = 1
var b uint8 = 255
fmt.Println("减法:", a-b)
这段代码的结果是什么呢?
很明显uint8的取值范围是0-255之间,此时已经超出范围了,那么超出后的结果是什么呢?0或者0报错?我也不知道,一起来看看最后的结果是怎样?
package main
import "fmt"
//两个uint类型的数字相减后小于0
func main() {
var a uint8 = 1
var b uint8 = 255
fmt.Println("减法:", a-b)
fmt.Println("加法:", a+b)
fmt.Println("乘法:", a*b)
// 结果为:
// 减法: 2
// 加法: 0
// 乘法: 255
}
其它类型和此情况类似,例如int64:
package main
import "fmt"
// int64 Range: -9223372036854775808 through 9223372036854775807.
func main() {
var a int64 = -8223372036854775807
var b int64 = 9223372036854775807
fmt.Println("减法:", a-b)
fmt.Println("乘法:", a*b)
// 结果为:
// 减法: 1000000000000000002
// 乘法: -1000000000000000001
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)