Suma logiczna błędne wyniki

0

int A = 11000000;
int B = 11111111;
int wynik = A & B;

a wynik to 10586304

Chce zrobić sumę logiczną 11000000 i 11111111. Prawidłową odpowiedzią jest 11000000, jednak skąd wzięło mi się 10586304?
Jak obliczać sumę logiczną w C#?

0
Krugers napisał(a):

Prawidłową odpowiedzią jest 11000000, jednak skąd wzięło mi się 10586304?

Pewnie stąd, że 11000000 to binarnie 101001111101100011000000.
A 11111111 to binarnie 101010011000101011000111.

Teraz wynikiem bitowej operacji AND jest 101000011000100011000000 co po przekonwertowaniu na system dziesiętny daje 10586304.

0

dziękuje

1

Binarnie tak się robi:

int A = Convert.ToInt32("11000000", 2);
1

& to operator AND nie OR

0

Dla liczb binarnych
''11000000 AND
11111111

11000000''

Natomiast
''11000000 OR
11111111

11111111''

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