int型の変数aは -2147483648から2147483647までの数値データの1つを格納できますが、その範囲外の数値を代入してプログラムを実行すると正しい結果が表示されません

ソーラー「まだまだ つづくよ


#include <iostream>


using namespace std;


int main() {


int a;

a=5;

cout <<a<<"\n";

return 0;

}


ビルド実行結果


5


マックス

「int型の変数aは


-2147483648から2147483647までの数値データの1つを格納できるのか


じゃ


格納できる数値データの最大値の2147483647より大きい


1000000000000000を


変数aに代入したらどうなるんだ?」


ソーラー「そういえば そうですよね


#include <iostream>


using namespace std;


int main() {

int a;

a=5;

cout <<a<<"\n";

return 0;

}


このプログラムにおいて


a=5;

の部分を

a=1000000000000000;


と書き換えて


コンパイルしてみましょう。


#include <iostream>


using namespace std;


int main() {

int a;

a=1000000000000000;

cout <<a<<"\n";

return 0;

}


かきかきっと


書き換え終了


ソーラー

「では(^_^)/


ビルド実行っ」



ビルド実行結果


-1530494976



警告 C4309 '=': 定数値が切り捨てられました。c:\users\solarplexuss\source\repos\project7\project7\source.cpp

警告 C4305 '=': '__int64' から 'int' へ切り詰めます。c:\users\solarplexuss\source\repos\project7\project7\source.cpp


ソーラー「警告文とともに


なんだか1000000000000000とは


全然違う値

-1530494976


がビルド実行結果に表示されたね


この

警告文

C4309 '=': 定数値が切り捨てられました。

警告 C4305 '=': '__int64' から 'int' へ切り詰めます。


もなんだか


気になりますね。


とりあえず


int型の変数には


-2147483648から2147483647までの数値データ以外の数値を


格納すると


おかしなビルド実行結果が表示されることがわかりましたね」



  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る