ホームページ >よくある問題 >int型整数の範囲

int型整数の範囲

尚
オリジナル
2019-06-20 11:38:3176840ブラウズ

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 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 000 0 0000 0000 0000 0000 、

補数は 1000 0000 0000 0000 0000 0000 0000 0001

つまり最小負の数は-2147483647ですか?違います、いいえ。

バイナリでは、0 に対して 2 つのテーブル メソッドがあります。

0 の元のコードは 0000 0000 0000 0000 0000 0000 0000 0000、

-0 の元のコードは 1000 0000 0000 0000 0000 0000 0000 0000、

0 は 1 つだけ必要なので、最小の数値 -2147483648 として -0 を使用します。

-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型整数の範囲

以上がint型整数の範囲の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。