課程
/后端開發
/C
/C語言入門
int不是只能包含兩個字符嗎?那為什么int的范圍是-2^15~2^15-1呢
2018-09-13
源自:C語言入門 2-3
正在回答
二進制數在計算機內存儲的是其補碼對于有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反后加1比如:1=(0001)補=(0001)-1=(1001)補=(1111)計算機存儲-1就是存儲的1111因此當int表示范圍為16位時,可以表示的最大負數為:10000...0000(后面有15個0)相當于-0但這其實是-32768=110000...0000(第一位符號位,后面有15個0)的補碼表示可以理解為16位的int足可以表示-32768的補碼
因為最高位是符號位,然后2的15減一是因為還有一個0
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答求大佬解惑!
2 回答求大佬解惑
1 回答求大佬解惑
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-09-30
二進制數在計算機內存儲的是其補碼
對于有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反后加1
比如:
1=(0001)補=(0001)
-1=(1001)補=(1111)
計算機存儲-1就是存儲的1111
因此
當int表示范圍為16位時,可以表示的最大負數為:
10000...0000(后面有15個0)
相當于-0
但這其實是-32768=110000...0000(第一位符號位,后面有15個0)的補碼表示
可以理解為16位的int足可以表示-32768的補碼
2018-09-13
因為最高位是符號位,然后2的15減一是因為還有一個0