Operator AND
Lekcja 5 z 17 w kursie Operacje bitowe w Coddy.
Operator AND ( &)
Bitowe AND to operator binarny, który działa na dwóch wzorcach bitowych o tej samej długości. Jeśli oba bity na porównywanych pozycjach wzorców bitowych mają wartość 1, bit w wynikowym wzorcu bitowym ma wartość 1, w przeciwnym razie 0. Symbol '&' oznacza operator AND.
Poniższa tabela przedstawia operację AND na dwóch bitach.
| x | 0 | 0 | 1 | 1 |
| y | 0 | 1 | 0 | 1 |
| x & y | 0 | 0 | 0 | 1 |
Przyjrzyjmy się przykładowi, aby lepiej zrozumieć operację AND.

W powyższym przykładzie wykonaliśmy operację AND na (11)10 i (6)10 , w wyniku której otrzymaliśmy (2)10. Po prostu zapisaliśmy te liczby w postaci binarnej i porównaliśmy oba bity. Jeśli wystąpiło zero, umieściliśmy 0 w wynikowym wzorcu bitowym.
Zastosowanie:
int a = 1;
int b = 0;
>> a & b
OUTPUT: 0Wyzwanie
ŁatwyTim podczas wędrówki odkrywa w jaskini kamienie z zapisanymi na nich liczbami. Wszystkie kamienie są ułożone w sekwencji. W pobliżu kamieni znajduje mistyczny dziennik, w którym zapisano, że kamienie są magiczne, oraz podano warunki, które muszą spełniać, aby wykonać magię. Są to:
- Kamienie magiczne występują w grupach po 2.
- Kamienie należy wybierać po kolei, bez przerw, a grupa nie może zawierać kamienia wybranego wcześniej.
- Trzeci warunek był nieczytelny. Tim eksperymentuje więc z kamieniami i odkrywa, że magia działa tylko wtedy, gdy operacja AND zastosowana do liczb z grupy daje zero.
Znajdź grupę, która wykonała magię, i wypisz liczbę zapisaną na pierwszym kamieniu z tej grupy.
Na przykład załóżmy, że kamienie, które znalazł, były ułożone tak:
[ 5 , 2 , 3 , 6 , 1 , 9 ]Najpierw Tim dzieli te kamienie na kolejne, niepowtarzające się grupy po 2. { (5,2) , (3,6) , (1,9) }
Następnie wykonuje operację AND ( & ) na tych grupach i odkrywa, że magię wykona pierwsza grupa. 5=> (101)2 i 2=>(010)2. Spośród trzech grup tylko ta da zero po wykonaniu na niej operacji AND.
Wynikiem będzie 5, ponieważ aby zidentyfikować grupę, musimy podać liczbę z pierwszego kamienia w tej grupie.
Pamiętaj też, że wszystkie sekwencje zawierają parzystą liczbę elementów, a w każdej z podanych sekwencji zawsze istnieje dokładnie jedna grupa, która wykona magię. Twoim wyzwaniem jest ukończenie funkcji "MagicStones", aby znaleźć magiczną grupę odkrytą przez Tima.
Spróbuj swoich sił
#include <iostream>
#include <vector>
using namespace std;
int MagicStones(vector<int> stone_sequence) {
// Napisz kod tutaj
}Wszystkie lekcje w sekcji Operacje bitowe
Poćwicz samodzielnie: Kompilator C++ online