Cで
int x;
と宣言すると、受け取れる最大整数値が2147483647までなのですが、
このサイズを変える事は出来ないのかと、
あと、どうしてこのようなサイズになってしまったのか分かる方教えて下さい。
変数を宣言したときに起きる事象について教えて下さい。
Re: 変数を宣言したときに起きる事象について教えて下さい。
それはint型が32ビット幅を持つ処理系だからです。(2^31-1 = 2147483647)
※処理系というのはコンパイラや実行環境などのことです。
同じコンパイラ・コンパイルオプション・実行環境などを使う限り、int型はずっと32ビット幅です。
そもそも、C言語ではint型のビット数が32ビットとは決まっておらず、処理系によって16ビットだったり64ビットだったりします。
※処理系というのはコンパイラや実行環境などのことです。
同じコンパイラ・コンパイルオプション・実行環境などを使う限り、int型はずっと32ビット幅です。
そもそも、C言語ではint型のビット数が32ビットとは決まっておらず、処理系によって16ビットだったり64ビットだったりします。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 変数を宣言したときに起きる事象について教えて下さい。
beatleさんの言われる通り処理系に依存します。HH さんが書きました:int x;
と宣言すると、受け取れる最大整数値が2147483647までなのですが、
このサイズを変える事は出来ないのかと、
あと、どうしてこのようなサイズになってしまったのか分かる方教えて下さい。
また、ビット幅の違う整数型はC/C++で定められていますので、それを使えば精度を変えることが出来ます。
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... B.E5.90.8D
ちなみに2147483647までなのは、2進数で31bit(最上位bitは符号)で表現できる最大の正の数値だからです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。