登录
首页 >  Golang >  Go问答

求int32和int8的和的计算方法

来源:stackoverflow

时间:2024-03-27 21:39:26 138浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《求int32和int8的和的计算方法》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

go中如何计算int32和int8的和?

func main() {
    var u32 uint32
    u32 = 434
    
    var i int8
    i = -1
    
    fmt.Println(u32 + i) // expect the result is 433
}```

compile error: invalid operation: u32 + i (mismatched types uint32 and int8)

解决方案


您可以使用 type conversion 相互转换整数类型。请注意,将“较大”类型转换为“较小”类型可能会导致溢出,从而产生完全不同的数字。 (它不会抛出错误,因此您可能不会立即注意到。)

在这个例子中,我将两者都转换为 int (如果您在 64 位系统上,则为 int64;如果您在 32 位系统上,则为 int32),因为我无法将 int8 转换为 uint32 ,因为它不会不支持负数,并且我无法将 uint32 转换为 int8,因为它无法容纳大数字。

func main() {
    var (
        u32 uint32 = 434
        i8  int8   = -1
    )

    fmt.Println(int(u32) - int(i8))
}

注意:如果没有特殊原因,请在各处使用 int。一个具体的原因可能是您正在创建一个与某些适用于更特定类型的硬件的接口,或者您正在为具有有限缓存的硬件编写软件。或者也许你确实需要挤出每个字节的东西。否则你的生活就会无缘无故地变得更加困难。

好了,本文到此结束,带大家了解了《求int32和int8的和的计算方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>