🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
6/4の計算結果は1と表示されるのはなぜでしょうか int型に格納された数値同士の計算結果はint型に格納されます。
6/4の計算結果は1と表示されるのはなぜでしょうか int型に格納された数値同士の計算結果はint型に格納されます。
てんC「マックスさん
先ほどのプログラムで
👇
#include <iostream>
using namespace std;
int main() {
cout << 6/4 << "\n";
cout << 7/4 << "\n";
cout << 8/4 << "\n";
cout << 9/4 << "\n";
cout << 10/4 << "\n";
cout << 11/4 << "\n";
return 0;
}
プログラムの実行結果
1
1
2
2
2
2
👆
6/4
などの整数値同士の割り算では
1.5
ではなく
1
と
整数値部分だけが表示されました。」
マックス「俺はこの結果に猛烈に満足している!」
てんC「はいっ
それは
6/4の
6と4は
計算前に
まず
コンピュータのメモリに
int型の形式(4バイト=32ビット)で格納されます。
ここから
どうして
cout << 6/4 << "\n";
により
6/4
の計算がおこなわれると
計算結果として
1.5ではなく
1が表示されるのかというと
同じ型の形式でメモリに格納されている数値同士の計算がおこなわれると
計算結果も
同じ型の形式でメモリに格納されるというシステム上の仕組みがあるからなのです。
int型の形式でメモリに格納されている数値同士の計算がおこなわれると
計算結果も
int型に格納され
doubleの形式でメモリに格納されている数値同士の計算が行われると
計算結果も
doubleの形式でメモリに格納されます
つまり
int型の形式でメモリに格納されている整数値同士の
足し算
引き算
掛け算
などでは
計算結果も
整数値になり
整数値を格納するint型の形式でメモリに格納されることになります
ですが
int型の形式でメモリに格納されている整数値同士の割り算
6/4のような
割り算では
計算結果に
1.25のように小数点以下の部分がでてきます。
その場合は
整数値データを格納するint型の形式では小数点以下の部分を
メモリに格納することができず
小数点以下の部分は切り捨てられ
int型の形式でメモリ格納することのできる
整数値部分の
1だけがメモリに格納されるというわけです。」
マックス「おおぅ そんなんなってるんかい
また 賢くなっちまったぜい(*^▽^*)」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます