【Arduino】ビット演算の便利な関数一覧(bit、bitSet、bitClearなど)

Arduinoにおけるビット演算の便利な関数であるbit、bitSet、bitClearなどを解説します。

スポンサーリンク

【値の変更】指定ビットの変更

bitSet関数は、指定した桁数のビットを1に変更します。
bitClear関数は、指定した桁数のビットを0に変更します。
bitWrite関数は、指定した桁数のビットを指定した値に変更します。

void setup() {
  Serial.begin(9600);
}

void loop() {
  // B11001100が上位バイト、B10101010が下位バイト
  uint16_t x = (B11001100 * 256) + B10101010;

  // 下位から1ビット目を1に変更
  bitSet(x, 0);
  Serial.println(x, BIN);// 1100110010101011

  // 下位から2ビット目を0に変更
  bitClear(x, 1);
  Serial.println(x, BIN);// 1100110010101001

  // 下位から8ビット目を0に変更
  bitWrite(x, 7, 0);
  Serial.println(x, BIN);// 1100110000101001
}
スポンサーリンク

【抽出】上位、下位バイト、指定ビットの取り出し

lowByte関数は、指定した数値から下位Byteを取り出すことができます。
highByte関数はその逆で、指定した数値から上位Byteを取り出すことができます。

void setup() {
  Serial.begin(9600);
}

void loop() {
  // B11001100が上位バイト、B10101010が下位バイト
  uint16_t x = (B11001100 * 256) + B10101010;

  // 上位バイトを取り出し
  uint8_t y1 = highByte(x);
  Serial.println(y1, BIN);// 11001100

  // 下位バイトを取り出し
  uint8_t y2 = lowByte(x);
  Serial.println(y2, BIN);// 10101010

  // 下位から2ビット目を取り出し
  uint8_t y3 = bitRead(x, 1);
  Serial.println(y3, BIN);// 1
}
【Arduino入門】サンプル集
このページでは、Arduinoで電子工作する方法やサンプルプログラム(ソースコード)を入門者向けに解説しています。
Arduino
スポンサーリンク
西住工房

コメント