如何读写单个bit

如何读写单个bit

如何读写单个 bit

1
2
3
4
5
#define BitVal(data,y) ( (data>>y) & 1)             // Return Data.Y value
#define SetBit(data,y) data |= (1 << y) // Set Data.Y to 1
#define ClearBit(data,y) data &= ~(1 << y) // Clear Data.Y to 0
#define TogleBit(data,y) (data ^=BitVal(y)) // Togle Data.Y value
#define Togle(data) (data =~data ) // Togle Data value

例如:

1
2
3
4
5
6
uint8_t number = 0x05; //0b00000101
uint8_t bit_2 = BitVal(number,2); // bit_2 = 1
uint8_t bit_1 = BitVal(number,1); // bit_1 = 0

SetBit(number,1); // number = 0x07 => 0b00000111
ClearBit(number,2); // number =0x03 => 0b0000011

参考与致谢

原文地址:https://wiki-power.com/
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。


如何读写单个bit
https://ysc2.github.io/ysc2.github.io/2024/02/03/如何读写单个bit/
作者
Ysc
发布于
2024年2月3日
许可协议