Przetwarzanie danych III: Operacje bitowe
 

Zadanie 61 (4p)

Napisać i przetestować w programie własne metody:
    *     String intToBinString1(int n), która dla liczby całkowitej n (typu int, podanej w systemie dziesiętnym) zwraca jej zapis w systemie dwójkowym, w wersji pełnej (32 bitów), np. intToBinString1(14) -> "0...01110",
    *     String intToBinString2(int n), która dla liczby całkowitej n (typu int, podanej w systemie dziesiętnym) zwraca jej zapis w systemie dwójkowym, w wersji skróconej, bez zbędnych zer, np. intToBinString2(14) -> "1110",

jednocześnie metody te mają wyprowadzić na konsolę pozycje zer w reprezentacji dwójkowej podanej liczby (najmłodszy bit ma pozycję 0).

Zadanie 62 (3p)

Napisać i przetestować w programie własną metodę int binStringToInt(String b), która dla łańcucha b (reprentującego zapis dwójkowy liczby całkowitej typu int) zwraca jej zapis w systemie dziesiętnym, np. binStringToInt("1110") -> 14.

Zadanie 63 (3p)

Napisać program, który zlicza ile razy następuje zmiana z 0 na 1 i z 1 na 0 w pełnej (32-bitowej) reprezentacji dwójkowej jawnie podanej liczby całkowitej (typu int) i na jakich pozycjach. Np. dla liczby -5, która jest reprezentowana w systemie dwójkowym jako "1...1011", liczba zmian to 2, i występują one na pozycjach (1,2)(2,3) (najmłodszy bit ma pozycję 0).

Zadanie 64 (3p)

Napisać program, który wyznacza wartość liczby powstałej z podanej liczby, po lustrzanym odbiciu jej dwójkowej reprezentacji, np. 2147483647 (01...1) - > -2 (1...10).