Operatory bitów logicznych do czego służą? Słyszałem, że mogę sprawdzić, czy liczba jest nieparzysta, czy nie, czytając ostatni bit. Nie mam pomysłu, potrzebuję praktycznego przykładu, dzięki w adavance
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli liczba jest nieparzysta, jej ostatnią cyfrą (binarnie) jest 1. Na przykład:
5 ~ 00000101
31 ~ 00011111
but 8 ~ 00001000
Więc jeśli ty I to (po kawałku) z 1, to znaczy
1 ~ 00000...01
Otrzymasz 1 jako wynik, jeśli liczba jest nieparzysta (tj. Jej ostatnia cyfra to 1).
5 ~ 00000101
1 ~ 00000001
-------------
00000001 => odd
Innym zastosowaniem byłoby przechowywanie wielu flag w jednej zmiennej, kryptografii itp. Jest ich naprawdę wiele.
0 dla odpowiedzi nr 2
Zwykle liczby, które mają swój LSB bit jak 1
są dziwne. Możesz więc po prostu sprawdzić przy użyciu operatora bitowego AND, czy ostatni bit LSB jest ustawiony, czy nie, jeśli jest to numer nieparzysty.
if((num & 1) == 1); // Its an odd number
Nie można jednak mieszać operatorów logicznych z operatorami bitowymi. Różnią się jako,
- Mamy operatory logiczne do wykonywania logiki boolowskiej (na wartościach logicznych).
- Mamy operatory bitowe do wykonywania logiki bitowej (na wartościach całkowitych).
0 dla odpowiedzi № 3
Jedna z najpopularniejszych aplikacji binarnychoperacje są polami bitowymi. Jeśli potrzebujesz na przykład poznać stan, który ma 2 możliwe wartości, zamiast używać tablicy znaków lub booli, które wymagają 1 bajtu dla każdego stanu, możesz użyć tej samej tablicy, ale możesz użyć każdego bitu do zachowania stan obiektu, a więc 8 razy mniej pamięci. Możesz również użyć operacji binarnych do oznaczania na przykład niektórych błędów. W tym przypadku bardzo łatwo jest je przekazać lub, używając niektórych operatorów, znaleźć błędy, które wystąpiły w wielu miejscach (binarne i) lub sprowadzić błędy z wielu źródeł (binarne lub). może znaleźć błędy, które wystąpiły w jednym miejscu, ale nie w drugim. Uwaga: możesz zastąpić „błędy” wieloma innymi rzeczami.