刚开始在 packthub 上学习 Go。在其中一个测验中,我看到了这个问题并在我的 VScode 上运行了它。我想知道为什么我会得到这个答案。这是代码。
package main
import "fmt"
func main() {
a := uint8(255)
b := uint8(127)
c := a + b
fmt.Println(a, "+", b, "=", c)
}
Run Code Online (Sandbox Code Playgroud)
输出是 126。请问如何?
小智 5
您首先必须了解 uint8。Uint8 的范围是 0 到 255,不超过这个范围。您已将“a”和“b”声明为 uint8。您使用隐式类型声明“c”,这使其成为 uint8,最大值为 255。这就是为什么您的输出为 126。(不是 127,因为“0”也被计算在内)
要完成这项工作,只需更改“a”和“b”的类型
package main
import "fmt"
func main() {
a := uint16(255)
b := uint16(127)
c := a + b
fmt.Println(a, "+", b, "=", c)
}
Run Code Online (Sandbox Code Playgroud)