第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

轉(zhuǎn)換負(fù)數(shù)。

轉(zhuǎn)換負(fù)數(shù)。

Go
ibeautiful 2023-06-26 17:02:30
當(dāng)將負(fù)數(shù)轉(zhuǎn)換為無符號整數(shù)并隨后添加該值時,會導(dǎo)致減法。a := (uint8)(10) b := (int8)(-8) fmt.Println(a + (uint8)(b)) // result: 2這是一種慣用的方法還是應(yīng)該更明確地進(jìn)行?
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊

由于該類型是無符號的,因此它是溢出
uint8(b)248,所以a + uint8(b)10+248=258=> 255 0 1 2 => 2

我的問題更多是關(guān)于當(dāng)值(有時您想加,有時想減)來自參數(shù)(必須是有符號類型)時如何從無符號整數(shù)中減去,這使得您必須在減法之前進(jìn)行類型轉(zhuǎn)換/添加。

同時使用int8


? ? a := int8(10)

? ? b := int8(-8)

? ? fmt.Println(a + b) // 2

? ? fmt.Println(a - b) // 18

您可以避免溢出,如下所示:


? ? a := uint8(10)

? ? b := int8(-8)

? ? c := uint8(b)

? ? d := uint16(a) + uint16(c)

? ? fmt.Println(d) // 258

您應(yīng)該在此處刪除多余的括號:


a := (uint8)(10)

b := (int8)(-8)

fmt.Println(a + (uint8)(b))


用這個:


a := uint8(10)

b := int8(-8)

fmt.Println(a + uint8(b))


查看完整回答
反對 回復(fù) 2023-06-26
  • 1 回答
  • 0 關(guān)注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號