工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例

C++ 演算子

このチュートリアルでは、C++のさまざまな演算子のタイプを実例とともに学習します。プログラミングにおいて、演算子は値や変数に対して操作を行う記号です。

演算子は変数や値に対して操作を行う記号です。例えば、+ は加算に、- は減算に使用される演算子です。

C++の演算子は6種類に分類できます:

  1. 算術演算子
  2. 代入演算子
  3. 関係演算子
  4. 論理演算子
  5. ビット演算子
  6. その他の演算子

1. C++ 算術演算子

算術演算子は変数やデータに対して算術演算を行います。例:

a + b;

ここでは + 演算子で変数 a と b を加算しています。同様に様々な算術演算子があります。

演算子演算
+加算
-減算
*乗算
/除算
%剰余演算(除算の余り)

実例 1: 算術演算子

#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 7;
    b = 2;

    // a と b の和を出力
    cout << "a + b = " << (a + b) << endl;
    // a と b の差を出力
    cout << "a - b = " << (a - b) << endl;
    // a と b の積を出力
    cout << "a * b = " << (a * b) << endl;
    // a を b で割った商を出力
    cout << "a / b = " << (a / b) << endl;
    // a を b で割った余りを出力
    cout << "a % b = " << (a % b) << endl;

    return 0;
}

出力

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

+, -, * は期待通り加算・減算・乗算を計算します。

/ 除算演算子

プログラム内の (a / b) に注目してください。/ は除算演算子です。

上記例から分かる通り、整数を整数で割ると商が得られます。しかし、除数または被除数のいずれかが浮動小数点数なら、結果は小数になります。

C++では:
7/2 は 3
7.0 / 2 は 3.5
7 / 2.0 は 3.5
7.0 / 2.0 は 3.5

% 剰余演算子

剰余演算子 % は余りを計算します。a = 9 を b = 4 で割ると、余りは 1 です。

注意: % 演算子は整数でのみ使用可能です。

インクリメントとデクリメント演算子

C++にはインクリメント ++ とデクリメント -- 演算子もあります。

例:

int num = 5;
// インクリメント演算子
++num; // 6

ここでは ++num; で num の値が 1 増えます。


実例 2: インクリメント/デクリメント演算子

// インクリメントとデクリメント演算子の動作
#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 100, result_a, result_b;

    // aを1増やし結果をresult_aに格納
    result_a = ++a;
    cout << "result_a = " << result_a << endl;

    // bを1減らし結果をresult_bに格納
    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}

出力

result_a = 11
result_b = 99

上記では ++ と -- を プレフィックス(++a, --b) として使用しました。しかし ポストフィックス(a++, b--) としても使用可能です。

詳細は「インクリメントとデクリメント演算子」を参照してください。


2. C++ 代入演算子

C++では、代入演算子で変数に値を代入します。例:

// a に 5 を代入
a = 5;

ここでは変数 a に値 5 を代入しています。

演算子例等価
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

実例 3: 代入演算子

#include <iostream>
using namespace std;

int main() {
    int a, b;
    // 2 を a に代入
    a = 2;
    // 7 を b に代入
    b = 7;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "\nAfter a += b;" << endl;
    // a と b の和を a に代入
    a += b; // a = a + b
    cout << "a = " << a << endl;
    return 0;
}

出力

a = 2
b = 7
After a += b;
a = 9

3. C++ 関係演算子

関係演算子は2つのオペランド間の関係をチェックします。例:

// a が b より大きいかチェック
a > b;

ここでは > が関係演算子で、a が b より大きいかどうかを判定します。

関係が true なら 1、false なら 0 を返します。

演算子意味例
==等しい3 == 5 は false
!=等しくない3 != 5 は true
>より大きい3 > 5 は false
<より小さい3 < 5 は true
>=以上3 >= 5 は false
<=以下3 <= 5 は true

実例 4: 関係演算子

#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;

    result = (a == b); // false
    cout << "3 == 5 is " << result << endl;
    result = (a != b); // true
    cout << "3 != 5 is " << result << endl;
    result = a > b; // false
    cout << "3 > 5 is " << result << endl;
    result = a < b; // true
    cout << "3 < 5 is " << result << endl;
    result = a >= b; // false
    cout << "3 >= 5 is " << result << endl;
    result = a <= b; // true
    cout << "3 <= 5 is " << result << endl;

    return 0;
}

出力

3 == 5 is 0
3 != 5 is 1
3 > 5 is 0
3 < 5 is 1
3 >= 5 is 0
3 <= 5 is 1
注意: 関係演算子は意思決定とループで使用されます。

4. C++ 論理演算子

論理演算子は式が true か false かを判定します。true なら 1、false なら 0 を返します。

演算子例意味
&&expression1 && expression2論理積(AND)。
すべてのオペランドが真のときのみ真。
||expression1 || expression2論理和(OR)。
少なくとも1つのオペランドが真なら真。
!!expression論理否定(NOT)。
オペランドが偽のときのみ真。

C++では論理演算子は意思決定でよく使われます。理解を深めるために例を見てみましょう:

a = 5, b = 8 とすると、
(a > 3) && (b > 5) は true
(a > 3) && (b < 5) は false
(a > 3) || (b > 5) は true
(a > 3) || (b < 5) は true
(a < 3) || (b < 5) は false
!(a < 3) は true
!(a > 3) は false

実例 5: 論理演算子

#include <iostream>
using namespace std;

int main() {
    bool result;

    result = (3 != 5) && (3 < 5); // true
    cout << "(3 != 5) && (3 < 5) is " << result << endl;
    result = (3 == 5) && (3 < 5); // false
    cout << "(3 == 5) && (3 < 5) is " << result << endl;
    result = (3 == 5) && (3 > 5); // false
    cout << "(3 == 5) && (3 > 5) is " << result << endl;
    result = (3 != 5) || (3 < 5); // true
    cout << "(3 != 5) || (3 < 5) is " << result << endl;
    result = (3 != 5) || (3 > 5); // true
    cout << "(3 != 5) || (3 > 5) is " << result << endl;
    result = (3 == 5) || (3 > 5); // false
    cout << "(3 == 5) || (3 > 5) is " << result << endl;
    result = !(5 == 2); // true
    cout << "!(5 == 2) is " << result << endl;
    result = !(5 == 5); // false
    cout << "!(5 == 5) is " << result << endl;

    return 0;
}

出力

(3 != 5) && (3 < 5) is 1
(3 == 5) && (3 < 5) is 0
(3 == 5) && (3 > 5) is 0
(3 != 5) || (3 < 5) is 1
(3 != 5) || (3 > 5) is 1
(3 == 5) || (3 > 5) is 0
!(5 == 2) is 1
!(5 == 5) is 0

論理演算子プログラムの解説


5. C++ ビット演算子

C++では、ビット演算子で個々のビットに対する演算を行います。char と int 型でのみ使用可能です。

演算子説明
&ビット単位 AND
|ビット単位 OR
^ビット単位 XOR
~ビット単位 1の補数
<<ビット単位 左シフト
>>ビット単位 右シフト

詳細は「C++ ビット演算子」を参照してください。


6. その他の C++ 演算子

C++でよく使われるその他の演算子の一覧です。これらは後のチュートリアルで学びます。

演算子説明例
sizeofデータ型のサイズを返すsizeof(int); // 4
?:条件に基づいて値を返すstring result = (5 > 0) ? "even" : "odd"; // "even"
&オペランドのメモリアドレスを表す&num; // numのアドレス
.構造体変数やクラスオブジェクトのメンバーにアクセスs1.marks = 92;
->ポインタでクラス/構造体変数にアクセスptr->marks = 92;
<<出力値を表示cout << 5;
>>入力値を取得cin >> num;

C言語

  1. C#演算子完全ガイド:C#における演算子の包括的解説
  2. C++データ型完全ガイド:基本型、修飾子、ベストプラクティス
  3. C++コメント完全ガイド:読みやすく保守しやすいコードのためのベストプラクティス
  4. C++クラステンプレート完全ガイド:実践的なジェネリックプログラミング
  5. C言語演算子完全ガイド:算術・関係・論理・ビット演算子
  6. C++演算子を徹底解説:種類、例、サンプルプログラム付き
  7. C言語演算子完全ガイド:種類、機能、実例付き解説
  8. C++プログラミング言語:概要と主要機能
  9. C++定数とリテラル完全解説:型、構文、ベストプラクティス
  10. Python 演算子完全マスター: 包括的ガイド
  11. Java演算子をマスター:種類、構文、実践例