golang uint8轉(zhuǎn)int8越界

var i uint8 = 128
fmt.Println(int8(i)) //結(jié)果為-128

很顯然這里出現(xiàn)了越界的情況,int8類型的范圍是-128~127,所以uint8類型的128轉(zhuǎn)換為int8類型時(shí)會(huì)出現(xiàn)越界。那么這里是怎么出現(xiàn)-128結(jié)果的呢?
原來計(jì)算機(jī)中都是以補(bǔ)碼進(jìn)行存儲(chǔ)的。uint8類型的128,原碼為1000 0000,補(bǔ)碼也為1000 0000;當(dāng)轉(zhuǎn)換為int8類型時(shí),補(bǔ)碼還是1000 0000,這里就變成了已知補(bǔ)碼求原碼;首位代表符號(hào)位,不做處理,其余各位按位取反再加1,截?cái)嘀罂梢缘贸?000 0000,即-128。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本篇文章講解了計(jì)算機(jī)的原碼, 反碼和補(bǔ)碼. 并且進(jìn)行了深入探求了為何要使用反碼和補(bǔ)碼, 以及更進(jìn)一步的論證了為何可...
    yang2yang閱讀 2,484評論 1 13
  • http://www.itdecent.cn/p/55a8195291db本篇文章講解了計(jì)算機(jī)的原碼, 反碼和補(bǔ)...
    PupilCHen閱讀 1,291評論 1 48
  • 本篇文章講解了計(jì)算機(jī)的原碼, 反碼和補(bǔ)碼. 并且進(jìn)行了深入探求了為何要使用反碼和補(bǔ)碼, 以及更進(jìn)一步的論證了為何可...
    克里斯加德納閱讀 817評論 0 51
  • 老東家百特教育這周在蘇州科技城小學(xué)舉辦阿福童嘉年華,關(guān)注了下,然后看到某同事的朋友圈,內(nèi)容意思大體如下: 一貴州的...
    demi小貓閱讀 225評論 0 0
  • 盡是鴻飛客里過 ,別情更欲舞婆娑。 林端疎影新篩出, 云外嵐煙自綰多。 小閣燈青分墨韻, 昆池灰落劫漣波 。 乘風(fēng)...
    旃檀之林閱讀 501評論 4 3

友情鏈接更多精彩內(nèi)容