3 回答

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
其實(shí)如果只看 1111 這4位二進(jìn)制數(shù),計(jì)算機(jī)也不知道它們是什么。
所以編程語言會有類型系統(tǒng),這些二進(jìn)制位在被解釋為相應(yīng)的類型后才有意義。
以 1111 為例:
當(dāng)它的類型是有符號整型,那么它就表示 -1。有符號整型的最高位被視為符號位,這里符號位為 1 表示它是負(fù)數(shù),按照補(bǔ)碼解釋為 -1。 有符號數(shù)最大只能表示為二進(jìn)制 0111,也就是十進(jìn)制的 7。
當(dāng)它的類型是無符號整型,那么它就是 15。
所以具體會被解釋成什么由它的類型而定。
順便說下,這也正是為什么整型間轉(zhuǎn)型時(shí)會發(fā)生溢出。 如果你把這個(gè) 15 轉(zhuǎn)型為有符號整型,那 1111 就被當(dāng)作是 -1 了。
所以轉(zhuǎn)型時(shí)要注意不同類型能表示的數(shù)值范圍。
添加回答
舉報(bào)
0/150
提交
取消