C では、int は 4 バイト、32 ビットを占め、データ範囲は -2147483648~2147483647[-2^31~2^31-1] です。 int型データは符号付き整数データであり、その最上位ビットが符号ビット(0は正、1は負)となります。
#C では、int は 4 バイト、32 ビットを占め、データ範囲は -2147483648~2147483647[-2^31~2^31] です。 -1]。
2 バイトを例とした詳細な回答プロセス: C では、int 型データは符号付き整数データであり、その最上位ビットは符号ビットです (0 は正を意味します) 、1 は負を意味します)。 1 バイトは 8 バイナリ ビットに相当します。多くのコンピュータ システムでは、通常、符号付き数値を表すために 2 の補数が使用されます (補数システム)。 元のコード: 最上位ビットは符号ビット (0 は正を意味し、1 は負を意味します) であり、他のビットは通常の方法で数値の絶対値を表します。 逆コード: 署名された本の場合、正の数の逆コードは元のコードと同じであり、負の数の逆コードは、元のコードのすべてのビットをビットごとに反転したものです。サインビット。 補数コード: 正の数の補数コードは元のコードと同じであり、負の数の補数コードはその逆コードで最下位ビットに 1 を加えたものです。 2 バイトなので、バイナリの元のコードの最大値は 0111 1111 1111 1111 = 2^15 - 1 = 32767 です。 最小値は 1111 1111 1111 1111 = - (2^15 - 1) = -32767 です。 元のコードの 0 の式は、[0]original = 0000 0000 0000 0000; [-0]original =1000 0000 0000 0000のように正と負に分けることができます。 したがって、バイナリの元のコードで表現すると、範囲は -32767 ~ -0 と 0 ~ 32767 になります。 0 が 2 つあるため、異なる値の数は 2^16 - 1 になります。 コンピュータが 2 の補数コードを使用してデータを保存する場合、0 の表現は一意です: [0] 補数 = [-0] 補数 = 0000 0000 0000 0000現時点では、正の数値エンコード 変更はありません。0000 0000 0000 0000 ~ 0111 1111 1111 1111 は引き続き 0 ~ 32767 を表します。 負の数値は、補数コードに従う必要があることを示します。つまり、-32767 の補数コードは 1000 0000 0000 0001 です。 したがって、補数コードには元のコードよりも 1 つ多くのコードが存在します。元のコードを補数コードに変換すると 1000 0000 0000 0000 になることは不可能なので、このコードは 1000 0000 0000 0000 になります。 , だから人々 1000 0000 0000 0000 の 1 の補数エンコーディングは -32768 であると指定されています。 結論: int 型データが 2 バイトを占める場合、2^16 の変化を表現できます。最上位ビットは符号ビットなので、0 も 1 つの型を占めるので、正負で 2^15 の変化があります。 , そのため、正負の数値の最大値は対称ではありません。つまり、この int 型データの値の範囲は -32768 ~ 32767 になります。拡張情報:
C 言語"
以上がC言語のデータintの値の範囲は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。