int數值範圍案例

2021-09-27 12:11:58 字數 1212 閱讀 8794

計算機中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的...