補碼筆記

問:Integer 的最大值爲什麼是2^31 次方減一,而不是2^32次方減一
答:由於,最前一位表示符號位(0爲正符號位,1爲負符號位)

問:爲什麼Integer的最小值爲 2^31 次方 不用減一?

答:這是由於計算機在表示數方面,用的是補碼,沒有正負0;補碼形式的 100 爲-8 ,因此負數的最大值爲 - 2^31

問:爲什麼計算機用補碼錶示數?

答:由於用原碼錶示數字,在減法方面有點難以表示,如:010(2) +110(-2)=1100(-8);

若是用補碼,則:001(1)+110(-2)=111(-1);

用8位2進制來表示一個數的話,-8的源碼爲1000 1000,反碼爲1111 0111,補碼爲1111 1000 
根據擴展是符號位向高位擴展的原理 前面的1111是表示負號位的擴展,因此能夠直接等於1000吧 
通常都是8位擴展到16位 你這是書上簡寫了吧
相關文章
相關標籤/搜索