aabbcc296
級別: 論壇先鋒
|
請教: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呀? |
---|---|
|
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級別: 管理員
|
我記得有些東西,16位正的上限是32767,如果再大,就變成-32768了。 |
|
---|---|---|
本帖最近評分記錄:
|
fanuc_zgj
級別: 探索解密
|
負數(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),因而它也就沒有了原碼和反碼。 |
---|---|
本帖最近評分記錄: |