^ (XOR)原文排他的論理和(EXCLUSIVE OR)、あるいはXORと呼ばれるちょっと便利な演算子があります(XORはエクスオアと発音されます)。XORのシンボルは「^」です。 この演算子はOR(|)に似ていますが、計算対象のビットが両方1のときは0となる点が異なります。 0 0 1 1 値1 0 1 0 1 値2 ---------- 0 1 1 0 (値1 ^ 値2) の結果 違う見方をすると、XORは2つのビットが異なるときだけ1となり、同じ場合は0となる、といえます。 int x = 12; // 二進数の 1100 int y = 10; // 二進数の 1010 int z = x ^ y; // 二進数の 0110 (十進数の6) XOR演算子はビットのトグル(0から1へ、1から0への変化)によく使われます。マスクビットが1のときそのビットは反転し、0のときはそのままです。 【例】 デジタルピン5をチカチカさせます。 void setup() { DDRD = DDRD | B00100000; // デジタルピン5をOUTPUTに Serial.begin(9600); } void loop() { PORTD = PORTD ^ B00100000; // bit5(ピン5)だけ反転 delay(100); } [目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]