```go
func main() {
var a uint8 = math.MaxUint8
fmt.Println(a)
fmt.Println(a + a)
}
```
// 结果居然是 254 ,和溢出的计算方法一样,去掉了字节高位 但是为什么呢 不符合大众的预期啊 感谢感谢
<a href="/user/zzustu" title="@zzustu">@zzustu</a> 感谢感谢 所以在 golang 中,做加法、乘法 等待运算时,一不小心就溢出了 而且是默默的 真要很小心。。是不是还要写一个辅助函数来判断 相加的结果 是不是介于 0到255之间,如是的话则可以,否则就panic
#6
更多评论
```go
1111 1111
+ 1111 1111
───────────────
1 1111 1110
后8字节 1111 1110 = 254
```
#1
<a href="/user/zzustu" title="@zzustu">@zzustu</a> 感谢,知道将高位字节丢弃了,我的问题就是为什么要丢失 , 难道在 golang 中 uint8 + uint8=uint8 ?
#2