Processing

PythonでProcessing Math Bitwise Operators

| (bitwise OR)

値の2進表現における対応する各ビットを比較する。それぞれの比較において、2つの1があれば1に、1と0があれば1に、2つの0があれば0になる。これは数字の2進表現を見ると簡単にわかる。

11010110 # 214
01011100 # 92

11011110 # 222

数字の2進表現を見るには、binary()関数とprint()を使う。

& (bitwise AND)

値の2進表現における対応する各ビットを比較する。それぞれの比較において、2つの1があれば1に、1と0があれば0に、2つの0があれば0になる。これは数字の2進表現を見ると簡単にわかる。

11010110 # 214
01011100 # 92

01010100 # 84

数字の2進表現を見るには、binary()関数とprint()を使う。

<< (left shift)

ビットを左にシフトする。演算子の左にある数字は、右にある数字で指定された桁数だけシフトされる。左にシフトするたびに数値は2倍になり、したがって左にシフトするたびに元の数値は2倍になります。左シフトは高速な乗算や、複数の数値をまとめて1つの大きな数値にする場合に使用する。左シフトは、整数またはバイトなどの自動的に整数に変換される数値でのみ機能する。

m = 1 << 3  # In binary: 1 to 1000
print(m)  # Prints "8"
n = 1 << 8  # In binary: 1 to 100000000
print(n)  # Prints "256"
o = 2 << 3  # In binary: 10 to 10000
print(o)  # Prints "16"
p = 13 << 1 # In binary: 1101 to 11010
print(p)  # Prints "26"

>> (right shift)

ビットを右にシフトする。演算子の左にある数字を、右にある数字で指定された桁数だけシフトする。右にシフトするたびに数値は半分になり、左にシフトするたびに元の数値は2で割られる。右シフトは高速な除算や、パックされた数値から個別の数値を取り出す場合に使用する。右シフトは、整数またはbyteやcharなどの自動的に整数に変換される数値でのみ動作する。

ビットシフトは、カラーデータタイプを使用する際に役立つ。右シフトでは、色から赤、緑、青、アルファ値を抽出することができる。左シフトは、色の値を素早く再構成するために使用できる(color()関数よりも素早く)。

m = 8 >> 3   # In binary: 1000 to 1
print(m)   # Prints "1"
n = 256 >> 6 # In binary: 100000000 to 100
print(n)   # Prints "4"
o = 16 >> 3  # In binary: 10000 to 10
print(o)   # Prints "2"
p = 26 >> 1  # In binary: 11010 to 1101
print(p)   # Prints "13"