首頁 >常見問題 >int型整數的範圍

int型整數的範圍

尚
原創
2019-06-20 11:38:3176841瀏覽

int型整數的範圍

int的範圍是-2147483648~2147483647。

計算方法如下:

電腦中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 11111 1111 1111 1111 1111 11111 1111 1111 1111 1111 11111 1111 1111 1111 111111110111111011111101111101111211121112111211121112111211311211211211211211131222111211211131131313122211121122111311311222111311221112211131122# 1111 1111 1111 1111 1111 1111

-2147483647:

原碼為1111 1111 1111 1111 1111 1111 11111 1111 1111 1111 1111 11111 110101111 1111 1111 1111010#1010 10100 0 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 0001需要一個,所以把-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

程式可直接呼叫函數求出範圍:

#include <limits.h>
#include<stdio.h>
int max = INT_MAX;//最大数
int min = INT_MIN;//最小数
int main(){
printf("max = %d\nmin = %d\n", max, min);
return 0;
}

#

以上是int型整數的範圍的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn