無符號數編碼
定義:
舉例:
範圍:w位二進制表示的範圍:0~2^w-1。
重要屬性:每個介於0~2^w-1之間的數都有唯一一個w位的編碼。
補碼編碼
定義:
解釋定義,就是最高位既是符號位,也參與運算,最高位爲1時,表示負數。
一個有符號的8位int類型的數表示的範圍是-128~127,負數的範圍要比正數大1,就是負數最大可以表示爲10000000,而正數只能表示爲01111111,所以負數表示的範圍比正數大1。
舉例:
範圍:-2^w~2^w-1
屬性:補碼編碼與具有唯一性。
除了補碼編碼可以表示有符號數外,還有兩種編碼就是原碼和反碼:
原碼缺陷:+0和-0都表示0,但是在原碼中二進制表示是不一樣的,+0表示爲00000000,-0表示爲10000000。
反碼缺陷:+0表示爲00000000,-0表示爲11111111。
原碼和反碼對0的表示沒有一個統一的二進制數,所以幾乎所有的機器上,表示二進制都使用補碼編碼。