int型別的範圍

2021-07-25 00:04:38 字數 633 閱讀 7441

int型別應該是-32768~32767

因為0在原碼中分為+0和-0 ,假設int是2個byte

則+0:0000000000000000

而-0:1000000000000000

取補碼後

+0: 0000000000000000

-0 : 0000000000000000 (原碼取反加一)

這樣0在補碼中只有一種

而任何數的原碼在轉成補碼都不會是1000000000000000

所以補碼中會比原碼多乙個編碼10000000000000000

人為規定10000000000000000是-32768的編碼

親測:codeblocks

#include #include #include #define max_int ((unsigned)(-1) >> 1)

#define min_int (max_int + 1) int main()

**2147483647 -2147483648 process returned 0 (0x0) execution time :

0.525 s press any key to continue.**

int型別的數值表示數的範圍

int為4個位元組 1位元組 8位,所以int為32位在計算機中儲存的二進位制位數。如果沒有符號位的話 就是32位 表示數的範圍為2的32次方 可以舉例數字就明白了 最大的整數為 2的32次方 1。就是這麼大 unsigned int 0 4294967295 如果有符號位的話,需要去除乙個符號位,...

各種int的範圍

unsigned int 0 4294967295 int 2147483648 2147483647 unsigned long 0 4294967295 long 2147483648 2147483647 long long的最大值 9223372036854775807 long long的...

int 取值範圍

參考 目錄原碼 最高位為符號位 0表示正,1表示負 反碼 對於乙個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位取反 補碼 正數的補碼與其原碼相同,負數的補碼為其反碼在最低為加1 計算機中採用補碼形式儲存資料,0的補碼表示只有一種 c 中int佔4個位元組,32位 最大...