[c3] Suma kontrolna
Data zakończenia: 2024-04-19 12:01
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 16-bitowe słowa. Suma kontrolna jest 16-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 16-bitowych słów zapisanych w postaci ósemkowej.
Wyjście jest 16-bitowym słowem zapisanym w postaci 6-cyfrowej liczby zapisanej w systemie ósemkowym (w razie potrzeby uzupełniona zerami do 6 cyfr).
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 16-bitowe słowa. Suma kontrolna jest 16-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 16-bitowych słów zapisanych w postaci ósemkowej.
Wyjście jest 16-bitowym słowem zapisanym w postaci 6-cyfrowej liczby zapisanej w systemie ósemkowym (w razie potrzeby uzupełniona zerami do 6 cyfr).
Przykład
Wejście
042547 021706 114151 044163 156121 056377 112112 54354 17451 114527Wyjście
076315