Dostęp do poszczególnych bitów w C++

Jak mógłbym uzyskać dostęp do poszczególnych bitów wewnątrz typu c++, char lub dowolnego innego typu c++ na przykład.

 14
Author: AnotherProgrammer, 2012-03-02

3 answers

Jeśli chcesz bit dostępu N:

Get: (INPUT >> N) & 1;

Set: INPUT |= 1 << N;

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

Przełącz: INPUT ^= 1 << N;

 39
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 10:05:34

Można by użyć operatorów binarnych | (or), & (and) I ^ (xor), aby je ustawić. Aby ustawić trzeci bit zmiennej a, Należy wpisać na przykład:

a = a | 0x4

Zauważ, że reprezentacja binarna 4 wynosi 0100

 3
Author: qdii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 09:59:18

To bardzo proste Powiedzmy, że musisz uzyskać dostęp do poszczególnych bitów liczby całkowitej Stwórz taką maskę int mask =1; teraz, gdy twój numer z tą maską da wartość ustawioną na bit zerowy aby uzyskać dostęp do bitu ustawionego na i-tej pozycji (indeksy zaczynają się od zera), just I with (mask

 1
Author: Raman Bhatia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 10:05:44