舉例:-1的4位二進制:1的二進制是0001反碼是1110補碼是1111但15用二進制表示也是1111那問題來了,計算機這么知道這是-1還是15?
3 回答

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