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

 更新时间:2024年12月20日 09:46:39   作者:牛宝贝儿哦  
在Go语言中,变量的大小溢出后,`uint`类型会回绕到最小值,而`int`类型会回绕到最大值的相反数,例如,`uint8`溢出后会变成0,`int64`溢出后会变成最小的负数

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
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Go语言利用接口实现链表插入功能详解

    Go语言利用接口实现链表插入功能详解

    这篇文章主要为大家介绍了Go语言中的接口,以及如何利用接口实现链表插入功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • go使用Gin框架利用阿里云实现短信验证码功能

    go使用Gin框架利用阿里云实现短信验证码功能

    这篇文章主要介绍了go使用Gin框架利用阿里云实现短信验证码,使用json配置文件及配置文件解析,编写路由controller层,本文通过代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • Golang使用JWT进行认证和加密的示例详解

    Golang使用JWT进行认证和加密的示例详解

    JWT是一个签名的JSON对象,通常用作Oauth2的Bearer token,JWT包括三个用.分割的部分。本文将利用JWT进行认证和加密,感兴趣的可以了解一下
    2023-02-02
  • golang内置net/http包的使用详解

    golang内置net/http包的使用详解

    在Go语言中,内置的net/http包提供了一种出色的方式来处理HTTP请求和响应,不仅功能强大,而且易于使用,本文将带大家深入了解Go语言内置的net/http包,揭示其强大的功能和用法,希望对大家有所帮助
    2023-11-11
  • go语言题解LeetCode674最长连续递增序列

    go语言题解LeetCode674最长连续递增序列

    这篇文章主要为大家介绍了go语言题解LeetCode674最长连续递增序列示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 浅析Gin框架中路由参数的使用

    浅析Gin框架中路由参数的使用

    这篇文章主要为大家介绍了路由参数的基本语法,以及路由匹配和路由参数值提取等相关内容,以帮助读者更好地对Gin 框架中路由参数进行使用,需要的可以参考下
    2023-08-08
  • golang channel管道使用示例解析

    golang channel管道使用示例解析

    这篇文章主要介绍了golang channel管道使用示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • go 微服务框架kratos使用中间件的方法

    go 微服务框架kratos使用中间件的方法

    在go语言中,中间件是一种用于处理http请求的开发模式,允许开发人员在请求到达处理程序之前或之后执行特定的操作,如日志记录、身份验证、错误处理等,这篇文章主要介绍了go 微服务框架kratos使用中间件的方法,需要的朋友可以参考下
    2024-05-05
  • Go设计模式原型模式考查点及使用详解

    Go设计模式原型模式考查点及使用详解

    这篇文章主要为大家介绍了Go设计模式原型模式考查点及使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Go语言实现字符串切片赋值的方法小结

    Go语言实现字符串切片赋值的方法小结

    这篇文章主要给大家介绍了Go语言实现字符串切片赋值的两种方法,分别是在for循环的range中以及在函数的参数传递中实现,有需要的朋友们可以根据自己的需要选择使用。下面来一起看看吧。
    2016-10-10

最新评论