演算子記号 | 意味 | Ex. |
+ | 加算 | 288 + 40 |
- | 減算 | 360 - 355 |
* | 乗算 | 40 * 50 |
/ | 除算 | 308 / 328 |
% | 剰余 | 575 & 550 |
実際に sample で確認します。
#include <iostream.h> int main() { // 加算 cout << "288 + 40 = " << 288 + 40 << endl ; // 減算 cout << "360 - 355 = " << 360 - 355 << endl ; // 乗算 cout << "40 * 50 = " << 40 * 50 << endl ; // 除算 cout << "308 / 328 = " << 308 / 328 << endl ; // 剰余 cout << "575 % 550 = " << 575 % 550 << endl ; return 0 ; } |
288 + 40 = 328 360 - 355 = 5 40 * 50 = 2000 308 / 328 = 0 575 % 550 = 25 |
288 + 40 = 328
これは問題ないですね。加算が出来ています。
360 - 355 = 5
これも問題ないですね。減算が出来ています。
40 * 50 = 2000
これも問題ありません。乗算が出来ています。
308 / 328 = 0
これも問題ありません。
整数 literal ですから 小数点以下の数値になってしまうので 0 で間違いありません。
しかし、これが望む結果ではない場合も想定できます。
整数 literal ではなく小数 literal の結果を求めた場合です。
その場合は
308. / 328. = 0.939024
このように小数 literal にすれば結果が望めます。
575 % 550 = 25
これも問題ありません。剰余ですから 575 / 550 は 1 余り 25 ですから 25 です。
#include <iostream.h> int main() { short i = 10, j = 20, k = 30, l = 60, m = 0 ; m = i + j * k / l ; cout << m << endl ; return 0 ; } |
20 |
となって計算された事を意味します。
しかし C++ でも ( ) を扱う事で優先順位を操作する事ができます。
※但し、数学や算数上での {} 中括弧や大括弧は扱えません。
次の sample をみてみましょう。
#include <iostream.h> int main() { short i = 10, j = 20, k = 30, l = 60, m = 0, n = 0 ; m = i + j * k / l ; n = i + j * (k / l) ; cout << m << endl << n << endl ; return 0 ; } |
20 10 |
variable m |
variable n |
|
|
という事です。
念のため、 30 / 60 = 0.5 ですが、整数 literal なので小数点以下の数値は省略されます。
省略したというよりは、削除されたという方が把握しやすいかもしれません。
ここには bug を発生させやすい要素があります。
つまり考える点は、
という事です。
実際には 整数型変数 や 整数型 literal に とある 効果を求めて使う人がいます。
それらは本来 cast (型変換)を使うのが適切であると考えられます。※ここでは cast の説明はしません。
しかし適切ではなくとも、他の source を触る事は多々あります。
そのときに、source 内容が理解出来なくても困る為、把握はしておいた方が良い事になります。
など、他にも多々あります。