int 类型的取值范围
生活随笔
收集整理的這篇文章主要介紹了
int 类型的取值范围
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大伙都知道int類型的 取值范圍是 -2147483648 到 2147483647
??????? 那為什么不是????????????????????????????? -2147483647 到 2147483648 呢?
???????
???????
??????? 因為int類型占4個byte, 就是32個bit 了,? 而32個二進制位中最高位的那個一位是表示正負的。
??????? 所以只有31 個位來表示int 類型本身的大小了。
??????? 從????? 0000000 00000000 00000000 00000000 到 1111111 11111111 11111111 11111111
?????? 其中后面31個1 就是 2147483647? 啊(2^31 - 1)
?????? 所以不算上最高位的符號位的話,? 31位 共可以表示 2147483647 個 非負整數, 其中包括2147483646 個正數 和 1個0
????? 而加上符號位后,可以表示負數了, 加上符號1后,2147483647?? 31位也可以公可以表示 2147483647 個 非正整數啊,
????? 從10000000 00000000 00000000 00000000 到 11111111 11111111 11111111 11111111
??
????? 問題來了 非正整數那個符號位是1? 非負正數那個符號位是0
???? 10000000 00000000 00000000 00000000 和 00000000 00000000 00000000 00000000
?????
???? ??
???? 實際上負數在內存里是用二進制補碼表示的(反碼+1)
???? 所以規定 00000000 00000000 00000000 00000000 是0
???? 而 1開頭的 2147483647 全部是負數
???? 而 10000000 00000000 00000000 00000000 就用來表示最小的負數 -2147483648
???? 所以符號位0開頭的int類型整數? 能表示 2147483646 個整數 和0
???? 而符號位為1開頭的int類型整數 能表示 2147483647 個負數
范圍就是 -2147483648 到 2147483647? 。。。
??????? 那為什么不是????????????????????????????? -2147483647 到 2147483648 呢?
???????
???????
??????? 因為int類型占4個byte, 就是32個bit 了,? 而32個二進制位中最高位的那個一位是表示正負的。
??????? 所以只有31 個位來表示int 類型本身的大小了。
??????? 從????? 0000000 00000000 00000000 00000000 到 1111111 11111111 11111111 11111111
?????? 其中后面31個1 就是 2147483647? 啊(2^31 - 1)
?????? 所以不算上最高位的符號位的話,? 31位 共可以表示 2147483647 個 非負整數, 其中包括2147483646 個正數 和 1個0
????? 而加上符號位后,可以表示負數了, 加上符號1后,2147483647?? 31位也可以公可以表示 2147483647 個 非正整數啊,
????? 從10000000 00000000 00000000 00000000 到 11111111 11111111 11111111 11111111
??
????? 問題來了 非正整數那個符號位是1? 非負正數那個符號位是0
???? 10000000 00000000 00000000 00000000 和 00000000 00000000 00000000 00000000
?????
???? ??
???? 實際上負數在內存里是用二進制補碼表示的(反碼+1)
???? 所以規定 00000000 00000000 00000000 00000000 是0
???? 而 1開頭的 2147483647 全部是負數
???? 而 10000000 00000000 00000000 00000000 就用來表示最小的負數 -2147483648
???? 所以符號位0開頭的int類型整數? 能表示 2147483646 個整數 和0
???? 而符號位為1開頭的int類型整數 能表示 2147483647 個負數
范圍就是 -2147483648 到 2147483647? 。。。
總結
以上是生活随笔為你收集整理的int 类型的取值范围的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 关于指针的格式化
- 下一篇: Oracle 段区块 分配 (1)