ページ 11

変数を宣言したときに起きる事象について教えて下さい。

Posted: 2011年12月20日(火) 07:30
by HH
Cで
int x;
と宣言すると、受け取れる最大整数値が2147483647までなのですが、
このサイズを変える事は出来ないのかと、
あと、どうしてこのようなサイズになってしまったのか分かる方教えて下さい。

Re: 変数を宣言したときに起きる事象について教えて下さい。

Posted: 2011年12月20日(火) 07:36
by beatle
それはint型が32ビット幅を持つ処理系だからです。(2^31-1 = 2147483647)
※処理系というのはコンパイラや実行環境などのことです。

同じコンパイラ・コンパイルオプション・実行環境などを使う限り、int型はずっと32ビット幅です。
そもそも、C言語ではint型のビット数が32ビットとは決まっておらず、処理系によって16ビットだったり64ビットだったりします。

Re: 変数を宣言したときに起きる事象について教えて下さい。

Posted: 2011年12月20日(火) 10:52
by softya(ソフト屋)
HH さんが書きました:int x;
と宣言すると、受け取れる最大整数値が2147483647までなのですが、
このサイズを変える事は出来ないのかと、
あと、どうしてこのようなサイズになってしまったのか分かる方教えて下さい。
beatleさんの言われる通り処理系に依存します。
また、ビット幅の違う整数型はC/C++で定められていますので、それを使えば精度を変えることが出来ます。
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... B.E5.90.8D

ちなみに2147483647までなのは、2進数で31bit(最上位bitは符号)で表現できる最大の正の数値だからです。

Re: 変数を宣言したときに起きる事象について教えて下さい。

Posted: 2011年12月21日(水) 09:10
by HH
ありがとうございました