Доступ к отдельным битам в символе C ++ - PullRequest
17 голосов
/ 02 марта 2012

Как мне получить доступ к отдельным битам внутри типа c ++, char или любого другого типа c ++, например.

Ответы [ 3 ]

46 голосов
/ 02 марта 2012

Если вам нужен бит доступа N:

Получить: (INPUT >> N) & 1;

Set: INPUT |= 1 << N;

Unset: INPUT &= ~(1 << N);

Переключить: INPUT ^= 1 << N;

3 голосов
/ 02 марта 2012

Для их установки вы должны использовать бинарные операторы | (или), & (и) и ^ (xor). Чтобы установить третий бит переменной a, вы должны напечатать, например:

a = a | 0x4

// c++ 14
a = a | 0b0100

Обратите внимание, что двоичное представление 4 - 0100

1 голос
/ 02 марта 2012

Это очень просто. Допустим, вам нужен доступ к отдельным битам целого числа. Создайте маску наподобие int mask = 1;теперь, и с помощью вашего номера с этой маской выдается значение, установленное в нулевой бит, чтобы получить доступ к биту, установленному в i-й позиции (индексы начинаются с нуля), просто и с (маска

...