Poniższy zestaw zadań ma za zadanie sprawdzić wiedzę dotyczącą operacji bitowych. Zadanie zostały posortowane względem poziomu trudności. Zadania powinny być wykonywane w przedstawionej kolejności, ponieważ część zadań łączy się z poprzednimi.
Napisz funkcję o nagłówku int wybierzBit(int val, int ktory), która wybierze ktory bit z wartości val i zwróci tę wartość.
Przykładowo jeśli val = 10112 i ktory = 0 to funkcja zwróci 1, a jeśli ktory = 2 to poprawnym wynikiem jest 0.
Napisz funkcję o nagłówku int policzBity(int val, int wartosc), która policzy ile bitów w wartości val to wartosc i zwróci tę wartość.
Przykładowo jeśli val = 10112 i wartosc = 0 to funkcja powinna zwrócić 3.
Napisz funkcję o nagłówku int nadluzszyPodciag(int val, int wartosc), która policzy ile jest takich samych bitów wartosc koło siebie i zwróci tę wartość.
Przykładowo jeśli val = 10112 i wartosc = 0 to funkcja powinna zwrócić 1, a dla wartosc = 1 poprawnym wynikiem jest 2.
Napisz funkcję o nagłówku int ustawBit(int val, int ktory, int wartosc), która ustawi ktory z wartości val na wartosc i zwróci nową wartość zmiennej val.
Przykładowo jeśli val = 10112, ktory = 1 i wartosc = 0 to funkcja powinna zwrócić 3.
Napisz funkcję o nagłówku int wybierzBity(int val, int lewy, int prawy), która wybierze wszystkie bity począwsze od indeksu lewy do prawy włącznie i zwróci je.
Przykładowo jeśli val = 10112, lewy = 1 i prawy = 2 to funkcja powinna zwrócić val = 012.
Napisz funkcję int zamienSasiednieBity(int val), która zamieni miejscami każde dwa kolejne bity w wartości val i zwróci nową wartość.
Przykładowo jeśli val = 10012 to funkcja powinna zwrócić 01106.
Napisz funkcję int ileIdentycznychBitow(int val1, int val2), która sprawdzi każdą parę bitów o tych samych indeksach w podanych wartościach i zwróci ile jest takich samych bitów na tych samych indeksach.
Przykładowo jeśli val1 = 10012 i val2 = 10112 to funkcja powinna zwrócić 3.