it编程 > 前端脚本 > Golang

golang变量uint、int大小溢出后的结果方式

26人参与 2025-02-14 Golang

golang变量uint、int大小溢出后的结果

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)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

golang拼接字符串的5种实现方式

02-14

详谈Golang uint类型溢出问题

02-14

Golang处理内存溢出方式

02-14

Go利用ffmpeg进行视频和音频处理

02-14

golang抓取tcp包的实现方式

02-14

Go语言封装一个Cron定时任务管理器

02-14

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论