1.負數的表現形式,爲何如此設計?ide
負數的表現形式是正數取反加一。原理是正負數相加值爲0.如此設計正負值相加時首位的1因爲超出表示範圍會溢出。獲得符合補碼錶示法的正確數值。spa
好比byte類型的二進制表示的數,1000 0001 + 0111 1111 = (byte類型是8位,第9位是1超過範圍)1 0000 0000,因此取前面8位,0000 0000,值就爲0了。設計
--------------------------------------------------orm
2.-128是在內存中是如何存儲的?推算過程?內存
-128在8位的字節存儲結構中=1000 0000,在補碼錶示法中,1000 0000的補碼也是1000 0000,因爲它的符號位是1,表明負數則它表示-128。it
若是用-127-1的方式推算-128,則過程以下class
+127=0111 1111,-127=1000 0001,-128=-127-1=1000 0000原理
-------------------------------------------------二進制
3.若是字節表示爲11111111,則其真實數據是多少?數據
從符號位來看這是一個負數,先獲得它的正數。1111 1111的取反加1爲0000 0001,則真實數據爲+1
--------------------------------------------------
4.正負數是否都支持補碼的方式?
正負數都支持補碼的方式
---------------------------------------------------
5.正數是不是負數的減一取反?
是,127=0111 1111=~(1000 0001-1)=~1000 0000=0111 1111
126=0111 1110=~(1000 0010-1)=~1000 0001=0111 1110
125=0111 1101=~(1000 0011-1) =~1000 0010=0111 1101