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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
HH

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

#1

投稿記事 by HH » 14年前

Cで
int x;
と宣言すると、受け取れる最大整数値が2147483647までなのですが、
このサイズを変える事は出来ないのかと、
あと、どうしてこのようなサイズになってしまったのか分かる方教えて下さい。

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

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

#2

投稿記事 by beatle » 14年前

それはint型が32ビット幅を持つ処理系だからです。(2^31-1 = 2147483647)
※処理系というのはコンパイラや実行環境などのことです。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 14年前

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

ちなみに2147483647までなのは、2進数で31bit(最上位bitは符号)で表現できる最大の正の数値だからです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。


閉鎖

“C言語何でも質問掲示板” へ戻る