[zp06] Suma kontrolna
Języki:
c
Limit czasu: 1.0 s
Limit pamięci: 5 MB
Cel
Zadanie na operacje bitowe, wejście i wyjście formatowane oraz formaty wejścia i wyjścia.
Problem
Naukowiec pisał program, który gromadził dużą ilość danych. Ponieważ zachodziła obawa, że może dochodzić do przekłamywania pojedynczych bitów, więc stwierdził, że do każdej porcji danych będzie dołączał prostą sumę kontrolną.
Zadanie
Napisz program, który będzie wyliczał sumę kontrolną dla danych w następujący sposób:
Dane podzielone są na 32-bitowe słówa. Suma kontrolna jest 32-bitowym słowem w którym i-ty bit jest jedynką wtedy i tylko wtedy, jeśli w nieparzystej ilości słów danych i-ty bit jest jedynką. (Innymi słowy suma kontrolna jest otrzymywana w wyniku wykonania operacji różnicy symetrycznej (XOR) na bitach słów danych.)
Danymi jest ciąg 32-bitowych słów zapisanych w postaci szesnastkowej.
Wyjście jest 32-bitowym słowem zapisanym w postaci szesnastkowej (wariant z dużymi literami).
Przykład
Wejście
Zadanie na operacje bitowe, wejście i wyjście formatowane oraz formaty wejścia i wyjścia.
Problem
Naukowiec pisał program, który gromadził dużą ilość danych. Ponieważ zachodziła obawa, że może dochodzić do przekłamywania pojedynczych bitów, więc stwierdził, że do każdej porcji danych będzie dołączał prostą sumę kontrolną.
Zadanie
Napisz program, który będzie wyliczał sumę kontrolną dla danych w następujący sposób:
Dane podzielone są na 32-bitowe słówa. Suma kontrolna jest 32-bitowym słowem w którym i-ty bit jest jedynką wtedy i tylko wtedy, jeśli w nieparzystej ilości słów danych i-ty bit jest jedynką. (Innymi słowy suma kontrolna jest otrzymywana w wyniku wykonania operacji różnicy symetrycznej (XOR) na bitach słów danych.)
Danymi jest ciąg 32-bitowych słów zapisanych w postaci szesnastkowej.
Wyjście jest 32-bitowym słowem zapisanym w postaci szesnastkowej (wariant z dużymi literami).
Przykład
Wejście
48230029 678418BE 3d6c4ae1 72AE2CD6 5f906952 6DF11649 41bb5af1 01EB26E9 2ea60bb3 153C12DB 29CE0000Wyjście
000064CB