aabbcc296
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 862 個
工控威望: 1255 點
下載積分: 6053 分
在線時間: 607(小時)
注冊時間: 2009-03-07
最后登錄: 2020-11-25
查看aabbcc296的 主題 / 回貼
樓主  發(fā)表于: 2011-11-18 12:17
請教:16位整數(shù)的負數(shù)最小怎么是-32768?  最高位為0時為正數(shù),為1時為負數(shù)。如果是最小的負數(shù),二進制表示為       1111   1111   1111   1111,應(yīng)為—32767呀!
書上說整數(shù)用補碼來表示,補碼是什么意思。
怎么表示負數(shù)呀?1000   0000   0000    1010是不是就是—6呀?
0000   0000   0000    1010是不是就是6呀?
fanuc_zgj
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 35 個
工控威望: 191 點
下載積分: 535 分
在線時間: 15(小時)
注冊時間: 2011-11-18
最后登錄: 2015-11-21
查看fanuc_zgj的 主題 / 回貼
1樓  發(fā)表于: 2011-11-18 13:38
負數(shù)的補碼就是對反碼加一,而正數(shù)不變,正數(shù)的原碼反碼補碼是一樣的。
采用補碼表示時,16位整數(shù)的負數(shù)最小數(shù)就是-32768,而正數(shù)最大數(shù)是32767;

16位原碼表示的整個數(shù)據(jù)區(qū)間為:【-32767——  -0,+0 ——32767】
16位補碼表示的整個數(shù)據(jù)區(qū)間為:【-32768——0——32767】
請注意這兩種碼表示的個數(shù)總數(shù)是一樣的,但補碼表示的數(shù)據(jù)卻是唯一的;

[1111  1111  1111  1111] 原碼表示時確為-32767,但當采用補碼表示時,規(guī)定由-32768由于代替了-0(為了確保整個數(shù)據(jù)區(qū)間只有一個0,而不是一個+0和一個-0),因而它也就沒有了原碼和反碼。
本帖最近評分記錄:
  • 下載積分:+5(aabbcc296) 熱心助人