計算機中32位int型別變數的範圍,其中int型別是帶符號整數。
正數在計算機中表示為原碼,最高位為符號位:
1的原碼為0000 0000 0000 0000 0000 0000 0000 0001
2147483647的原碼為0111 1111 1111 1111 1111 1111 1111 1111
所以最大的正整數是2147483647
負數在計算機中表示為補碼,最高位為符號位:
-1:原碼為1000 0000 0000 0000 0000 0000 0000 0001,
反碼為1111 1111 1111 1111 1111 1111 1111 1110,
補碼為1111 1111 1111 1111 1111 1111 1111 1111
-2147483647:
原碼為1111 1111 1111 1111 1111 1111 1111 1111,
反碼為1000 0000 0000 0000 0000 0000 0000 0000,
補碼為1000 0000 0000 0000 0000 0000 0000 0001
所以最小的負數是-2147483647嗎?錯,不是。
在二進位制中,0有兩種表方法。
+0的原碼為0000 0000 0000 0000 0000 0000 0000 0000,
-0的原碼為1000 0000 0000 0000 0000 0000 0000 0000,
因為0只需要乙個,所以把-0拿來當做乙個最小的數-2147483648。
-2147483648的補碼表示為1000 0000 0000 0000 0000 0000 0000 0000,在32位沒有原碼。
注意,這個補碼並不是真正的補碼,真正的補碼是1 1000 0000 0000 0000 0000 0000 0000 0000,溢位。
所以帶符號32位int型別整數為-2147483648~2147483647
在程式設計中怎樣使用最大和最小的數呢?c語言在limits.h中包含了極大和極小的整數值,直接呼叫就可以了。
#include
#include
int max = int_max;//最大數
int min = int_min;//最小數
int型別的數值表示數的範圍
int為4個位元組 1位元組 8位,所以int為32位在計算機中儲存的二進位制位數。如果沒有符號位的話 就是32位 表示數的範圍為2的32次方 可以舉例數字就明白了 最大的整數為 2的32次方 1。就是這麼大 unsigned int 0 4294967295 如果有符號位的話,需要去除乙個符號位,...
int 取值範圍
參考 目錄原碼 最高位為符號位 0表示正,1表示負 反碼 對於乙個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位取反 補碼 正數的補碼與其原碼相同,負數的補碼為其反碼在最低為加1 計算機中採用補碼形式儲存資料,0的補碼表示只有一種 c 中int佔4個位元組,32位 最大...
各種int的範圍
unsigned int 0 4294967295 int 2147483648 2147483647 unsigned long 0 4294967295 long 2147483648 2147483647 long long的最大值 9223372036854775807 long long的...