| 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]