System szesnastkowy i operatory &, ^

0

Witam.
Mam pytanie odnośnie tego kodu:

byte b1 = 0xF7;
byte b2 = 0xAB;
byte temp;
temp = (byte)(b1 & b2);
Console.Write (temp + " ");
temp = (byte)(b1^b2);
Console.WriteLine(temp);

Jak mogę wyliczyć jakie wartości będą wyświetlone w konsoli?
To co mi się udało zrobić to wyliczyłem, że F7=247 a AB=171.
Tylko co ma znaczyć b1 & b2. Wiem, że jest to operator AND, ale nie wiem w jaki sposób mogę to wyznaczyć. Podobnie z drugim.
Szukałem w google, ale z marnym skutkiem. Jeśli był już podobny temat to poproszę o odnośnik do niego.

Edit: Czy mam te dwie liczby w systemie szesnastkowym przekształcić na binarne i porównać, że są takie same?

0

Chodzi o wyliczenie na kartce wyniku?

1
Lukis92 napisał(a):

Edit: Czy mam te dwie liczby w systemie szesnastkowym przekształcić na binarne i porównać, że są takie same?

Masz na odpowiadających sobie bitach tych dwóch liczb przeprowadzić operacje AND oraz XOR.

1

w systemie szesnastkowym jeden znak odpowiada 4 bitom, możesz więc liczbę F7 rozbić na dwie niezależne cyfry F i 7

liczymy wynik na starszej pozycji F & A = 1111 & 1010 = 1010 = A
potem na młodszej 7 & B = 0111 & 1011 = 0011 = 3

wynik: A3

nie można tak robić chociażby w systemie dziesiętnym ponieważ kolejne cyfry nie odpowiadają niezależnym sobie bitom

1 użytkowników online, w tym zalogowanych: 0, gości: 1