Zerowanie bitowe

0

Czy zna ktoś operator bitowy: zerowanie bitowe? Nie ma tego w poradniku na stronce o operatorach oraz w internecie google nie chcą pomóc po polsku.
Najlepiej byłoby dla mnie, gdyby ktoś podrzucił składnię (jak to liczyć w C++) oraz zasadę jak to działa.

0

XOR na samym sobie spowoduje wyzerowanie

0

Czyli mam rozumieć, że np:
10(10) = 00001001
15(10) = 00001111
XOR = 11111001
Czy to chodzi o to?
I jak to zapisać, aby C++ operował na bitach?

0

Nie xor tylko and (&)... Maskujesz te bity, których nie chcesz usunąć, ew. negujesz maskę bitów do usunięcia.

0

Nie chodzi mi niestety o koniunkcję ( z tym dałbym sam sobie radę) tylko o zerowanie. Wydaje mi się, że xor byłoby na najbliżej, ale to tylko luźne, niczym nie potwierdzone opinie :)

0

A = 00001001
B = 00001111

jak chcesz wyzerować całość to XOR, bo

A XOR A = 00000000
B XOR B = 00000000

jak chcesz wyzerować tylko kawałek to AND za pomocą maski C

B = 00001111
C = 11111100

B AND C = 00001100

Jak całość to można też robić AND na NEGACJI:

A = 00001001
B = 00001111

~A = 11110110
~B = 11110000

A AND ~A = 0
B AND ~B = 0

0

Dobrze, tylko że ja muszę znać co oznacza zerowanie bitowe i jak to zrobić na dowolnych dwóch liczbach.

0

Nie ma takiego pojęcia ani w matematyce ani w informatyce jak zerowanie bitowe. Jeżeli to problem na uczelni to wykładowca tak to sobie sam nazwał. Stąd trzeba rozumieć to sformuowanie dosłownie - czyli operacja bitowa w efekcie której otrzymuje się zero. Powyższe sposoby to jedyne sposoby na osiągnięcie tego celu przy pomocy prostych operacji bitowych.

Każdy z tych operatorów logicznych na swoje odpowiedniki w każdym języku programowania.

0

Czyli w takim razie zerowanie można osiągnąć przez:

A AND ~A
i taki zapis powinien być dobrze.

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