亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go中的顏色操作

go中的顏色操作

Go
烙印99 2022-11-23 13:31:38
有一些簡單的顏色操作,但是輸出是錯誤的。我只是想知道這里發生了什么。主程序:package mainimport (    "fmt"    "image/color")func main() {    startColor := color.RGBA{0x34, 0xeb, 0x64, 0xff}    endColor := color.RGBA{0x34, 0xc9, 0xeb, 0xff}    fmt.Printf("%d-%d=%d\n", endColor.G, startColor.G, endColor.G-startColor.G)}輸出:201-235=222
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

color.RGBA.G是一個uint8。 由于 235 大于 201,但 uint8 不存儲 -34 之類的負數,因此該值是換行的。

沒有什么color具體的情況。您會得到相同的答案(222):

    var g1, g2 uint8 = 0xc9, 0xeb
    fmt.Println(g1 - g2)

所以沒有什么不尋常的,只是標準的Go unsigned integer overflow wrapping。它甚至不是未定義的行為。


查看完整回答
反對 回復 2022-11-23
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號