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

C#演算子完全ガイド:算術・関係・論理・ビット演算子など

演算子とは、コンパイラに特定の数学的または論理的操作を実行させる記号です。C#には豊富な組み込み演算子があり、以下の種類に分類されます。

算術演算子

変数Aが10、変数Bが20を保持していると仮定します。

演算子説明例
+2つのオペランドを加算A + B = 30
-第1オペランドから第2オペランドを減算A - B = -10
*2つのオペランドを乗算A * B = 200
/分子を分母で除算B / A = 2
%剰余演算子(整数除算の余り)B % A = 0
++インクリメント演算子(整数値を1増やす)A++ = 11
--デクリメント演算子(整数値を1減らす)A-- = 9

関係演算子

変数Aが10、変数Bが20を保持していると仮定します。

演算子説明例
==2つのオペランドの値が等しいか判定(A == B) は false
!=2つのオペランドの値が等しくないか判定(A != B) は true
>左オペランドが右オペランドより大きいか判定(A > B) は false
<左オペランドが右オペランドより小さいか判定(A < B) は true
>=左オペランドが右オペランド以上か判定(A >= B) は false
<=左オペランドが右オペランド以下か判定(A <= B) は true

論理演算子

変数Aがブール値true、変数Bがfalseを保持していると仮定します。

演算子説明例
&&論理AND:両オペランドが非ゼロならtrue(A && B) は false
||論理OR:いずれかのオペランドが非ゼロならtrue(A || B) は true
!論理NOT:オペランドの論理状態を反転!(A && B) は true

ビット演算子

ビット演算子はビット単位で動作し、ビットごとの演算を行います。

真理値表(&, |, ^)

pqp & qp | qp ^ q
00000
01011
11110
10011

A = 60(0011 1100)、B = 13(0000 1101)とすると:

A & B = 0000 1100 (12)
A | B = 0011 1101 (61)
A ^ B = 0011 0001 (49)
~A    = 1100 0011 (-61、2の補数表現)
演算子説明例
&バイナリAND:両オペランドにビットが存在する場合に結果にコピー(A & B) = 12
|バイナリOR:いずれかのオペランドにビットが存在する場合にコピー(A | B) = 61
^バイナリXOR:一方のオペランドにのみビットがセットされている場合にコピー(A ^ B) = 49
~1の補数(単項):ビットを反転(~A) = -61
<<左シフト:左オペランドの値を右オペランドで指定されたビット数だけ左に移動A << 2 = 240
>>右シフト:左オペランドの値を右オペランドで指定されたビット数だけ右に移動A >> 2 = 15

代入演算子

演算子説明例
=単純代入C = A + B
+=加算代入C += A は C = C + A と等価
-=減算代入C -= A は C = C - A と等価
*=乗算代入C *= A は C = C * A と等価
/=除算代入C /= A は C = C / A と等価
%=剰余代入C %= A は C = C % A と等価
<<=左シフト代入C <<= 2 は C = C << 2 と等価
>>=右シフト代入C >>= 2 は C = C >> 2 と等価
&=ビットAND代入C &= 2 は C = C & 2 と等価
^=ビットXOR代入C ^= 2 は C = C ^ 2 と等価
|=ビットOR代入C |= 2 は C = C | 2 と等価

その他の重要な演算子

演算子説明例
sizeof()データ型のサイズを返すsizeof(int) は 4 を返す
typeof()クラスの型を返すtypeof(StreamReader)
&変数のアドレスを返す(unsafeコンテキストでのみ)&a
*変数へのポインタ(unsafeコンテキストでのみ)*a
? :条件演算子(三項演算子)条件 ? 値X : 値Y
isオブジェクトが特定の型か判定if (Ford is Car)
asキャスト失敗時に例外を投げずnullを返すobj as StringReader

演算子の優先順位

演算子の優先順位は、式における項のグループ化を決定し、評価順序に影響します。優先順位が高い演算子ほど先に評価されます。

例:x = 7 + 3 * 2 の場合、* が + より優先順位が高いため、まず 3*2=6 が計算され、次に 7+6=13 となります。x には 20 ではなく 13 が代入されます。

カテゴリ演算子結合規則
後置() [] -> . ++ --左から右
単項+ - ! ~ ++ -- (type)* & sizeof右から左
乗算* / %左から右
加算+ -左から右
シフト<< >>左から右
関係< <= > >=左から右
等価== !=左から右
ビットAND&左から右
ビットXOR^左から右
ビットOR|左から右
論理AND&&左から右
論理OR||左から右
条件?:右から左
代入= += -= *= /= %= >>= <<= &= ^= |=右から左
カンマ,左から右

注意点とベストプラクティス

C言語

  1. C#演算子完全ガイド:C#における演算子の包括的解説
  2. C# ビット演算子とビットシフト演算子をマスターする:包括的ガイド
  3. C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
  4. C言語演算子完全ガイド:算術・関係・論理・ビット演算子
  5. C 言語ビット演算子マスター: AND、OR、XOR、シフト、補数
  6. C言語演算子完全ガイド:種類、機能、実例付き解説
  7. C++演算子完全ガイド:種類、使い方、ベストプラクティス
  8. Verilog演算子:合成に必須の算術・制御演算子
  9. Python 演算子完全マスター: 包括的ガイド
  10. Java演算子をマスター:種類、構文、実践例
  11. Java演算子完全ガイド:算術/関係/ビット/論理/代入/三項/instanceof