madzienka Opublikowano 13 Grudnia 2005 Zgłoś Opublikowano 13 Grudnia 2005 Hej. prosze o pomoc. Mam napisac program w c++, ktory pobiera z lini polecen dwie liczby calkowite a i b, a nastepnie wykorzystujac operator: -iloczynu logicznego sprawdza czy podane liczby sa liczbami parzystymi -przesuniecia bitowego w prawo sprawdza ktora z liczb jest wieksza -XOR,sprawdza czy liczby sa sobie rowne -dzielenia modulo, sprawdza czy ktoras z liczb jest podzielnikiem drugiej. Dwa ostatnie umiem. Najbardziej chodzi mi o te dwa pierwsze, a w szczegolnosci o przesuniecie bitowe. Prosze pomozcie . Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 13 Grudnia 2005 Zgłoś Opublikowano 13 Grudnia 2005 podpowiem tylko że liczba jest parzysta... jeśli na bicie LSB ma 0... czyli iloczyn liczby a z 00001 sprawi.. ze wsstkie bity w a zostaną wyzerowane, a przepisany zostanie tlyko ten gdzie w masce 00001 jest 1... Jesli zatem licxzba a jest nieparzysta... np 5=0101 & 0001 =>0001 =1 , a dla liczby parzystej np 6=0110 & 0001 => 0000 =0. Więc iloczyn liczby a z maską daje 0 jeśi liczba a jest parzysta, 1 gdy nieparzysta. przesuniecie bitowe.. jakoś nie nasuwa mi się od razu wyjaśnienie.. zależy od tego jakie inne operacje można wykonać :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
NetWalker Opublikowano 13 Grudnia 2005 Zgłoś Opublikowano 13 Grudnia 2005 (edytowane) if(a & 1) { ... } //jest nieparzysta else { ... } //parzysta itd. przesunięcie bitowe to właśnie z >> lub <<, poczytaj - dasz rade :] Edytowane 13 Grudnia 2005 przez NetWalker Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...