Информацию взял отсюда - https://volstr.ru/?p=36
Вот готовый пример работы с битами main.cpp:
Код:
#include <iostream> using namespace std; void write_bit(unsigned int *variable, int bit, unsigned int val) { unsigned int temp; if(val == 0) temp &= ~(1 << bit); else temp |= (1 << bit); *variable = temp; } void invert_bit(unsigned int *variable, int bit) { unsigned int temp; temp ^= (1 << bit); *variable = temp; } int read_bit(unsigned int variable, int bit) { bool b; b = (bool((1 << bit) & variable)); if(b == true) return 1; return 0; } int main(int argc, char** argv) { unsigned int num=0; for(int i=0; i<8; i++) write_bit(&num, i, 1); cout << num << endl; for(int i=0; i<8; i++) cout << read_bit(num, i); cout << endl; return 0; }
Результат:
Код:
255 11111111 -------------------------------- Process exited after 0.06387 seconds with return value 0 Drücken Sie eine beliebige Taste . . .