|
がbitwise OR、&
がbitwise AND、^
がbitwise XOR、~
がbitwise NOT。
#include <stdio.h> // 1バイトデータを2進数の数「字」として表示するための函数。 void printByteAsBin(unsigned char oneByte){ unsigned char binStr[8]; unsigned char mask = 128; // 0b 1000 0000; for(int i=0; i<8; i++){ binStr[i] = (oneByte & mask) ? '1' : '0' ; mask >>= 1; } printf("%s\r\n", binStr); } int main(){ unsigned char oneByte = 0b11110000; // この1バイトデータに何かをする。 printf("元データ : "); printByteAsBin(oneByte); oneByte |= (1<<1 | 1<<0); // bits[1:0]を1にセットし、それ以外にはさわらない。 printf("bits[1:0]を1にセット: "); printByteAsBin(oneByte); oneByte &= ~(1<<7 | 1<<6); // bits[7:6]を0にクリアし、それ以外にはさわらない。 printf("bits[7:6]を0にクリア: "); printByteAsBin(oneByte); oneByte ^= (1<<4 | 1<<3); // bits[4:3]をトグルし、それ以外にはさわらない。 printf("bits[4:3]をトグル : "); printByteAsBin(oneByte); return 0; }