banner
Pi3

Pi3

记录学习、生活和成长
github
telegram
x
zhihu
email

Go言語入門5:演算子

Go 言語入門基礎学習ノートの Go 言語の演算子

golang

演算子#

Go 言語に組み込まれている演算子は次のとおりです:

  • 算術演算子
  • 関係演算子
  • 論理演算子
  • ビット演算子
  • 代入演算子
  • その他の演算子

算術演算子#

A = 10, B = 20 の場合

演算子説明
+加算A + B の出力結果 30
-減算A - B の出力結果 -10
*乗算A * B の出力結果 200
/除算B / A の出力結果 2
%余りB % A の出力結果 0
++自増A++ の出力結果 11
--自減A-- の出力結果 9

関係演算子#

A = 10, B = 20 の場合

演算子説明
==2 つの値が等しいかを確認し、等しい場合は True を返し、そうでなければ False を返します。(A == B) は False
!=2 つの値が等しくないかを確認し、等しくない場合は True を返し、そうでなければ False を返します。(A != B) は True
>左側の値が右側の値より大きいかを確認し、そうであれば True を返し、そうでなければ False を返します。(A > B) は False
<左側の値が右側の値より小さいかを確認し、そうであれば True を返し、そうでなければ False を返します。(A < B) は True
>=左側の値が右側の値以上かを確認し、そうであれば True を返し、そうでなければ False を返します。(A >= B) は False
<=左側の値が右側の値以下かを確認し、そうであれば True を返し、そうでなければ False を返します。(A <= B) は True

論理演算子#

A = True, B = False の場合

演算子説明
&&論理 AND 演算子。両方のオペランドが True であれば条件は True、そうでなければ False です。(A && B) は False
||論理 OR 演算子。どちらか一方のオペランドが True であれば条件は True、そうでなければ False です。(A | B) は True
!論理 NOT 演算子。条件が True であれば論理 NOT 条件は False、そうでなければ True です。!(A && B) は True

ビット演算子#

ビット演算子は整数バイナリビットに対して操作を行います。

$p$$q$$p$ & $q$$p\ {\mid}\ q$$p$ ^ $q$
00000
01011
11110
10011

A = 60; B = 13 と仮定し、十進数をバイナリに変換してビット演算を行います。

A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001

Go 言語がサポートするビット演算子は次の表に示されています。A は 60、B は 13 です。

演算子説明
&ビット AND 演算子 & は二項演算子です。演算に参加する 2 つの数の各対応するビットを AND します。(A & B) の結果は 12, バイナリは 0000 1100
|ビット OR 演算子|は二項演算子です。演算に参加する 2 つの数の各対応するビットを OR します。(A | B) の結果は 61, バイナリは 0011 1101
^ビット XOR 演算子 ^ は二項演算子です。演算に参加する 2 つの数の各対応するビットを XOR します。対応するビットが異なる場合、結果は 1 になります。(A ^ B) の結果は 49, バイナリは 0011 0001
<<左シフト演算子 << は二項演算子です。n ビット左シフトは 2 の n 乗を掛けることを意味します。<< の左側の数の各ビットを指定されたビット数だけ左にシフトします。高位ビットは破棄され、低位ビットは 0 で埋められます。A << 2 の結果は 240 ,バイナリは 1111 0000
>>右シフト演算子 >> は二項演算子です。n ビット右シフトは 2 の n 乗で割ることを意味します。>> の左側の数の各ビットを指定されたビット数だけ右にシフトします。A >> 2 の結果は 15 ,バイナリは 0000 1111

代入演算子#

演算子説明
=単純な代入演算子で、式の値を左辺に代入しますC = A + B は A + B の結果を C に代入します
+=加算後に代入C += AC = C + A と等しい
-=減算後に代入C -= AC = C - A と等しい
*=乗算後に代入C *= AC = C * A と等しい
/=除算後に代入C /= AC = C / A と等しい
%=余り後に代入C %= AC = C % A と等しい
<<=左シフト後に代入C <<= 2C = C << 2 と等しい
>>=右シフト後に代入C >>= 2C = C >> 2 と等しい
&=ビット AND 後に代入C &= 2C = C & 2 と等しい
^=ビット XOR 後に代入C ^= 2C = C ^ 2 と等しい
|=ビット OR 後に代入C |= 2C = C | 2 と等しい

= は複数の変数に同時に代入できます。例えば c, d = b, a のように、b を c に、a を d に代入します。

その他の演算子#

演算子説明
&変数の格納アドレスを返す&a は変数の実際のアドレスを返します。
*ポインタ変数。*a はポインタ変数

演算子の優先順位#

一部の演算子は高い優先順位を持ち、二項演算子の演算方向は左から右です。以下の表はすべての演算子とその優先順位を示しており、上から下に優先順位が高いから低いに示されています:

優先順位演算子
5* / % << >> & &^
4+ - | ^
3== != < <= > >=
2&&
1||

括弧 () を使用することで、特定の式の全体の演算優先順位を一時的に上げることができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。