FZU 1078 計算迴圈冗餘碼(基礎題 模擬)

2021-07-11 01:22:14 字數 997 閱讀 2373

description

計算機網路中採用迴圈冗餘碼來校驗資料的正確性。其原理是:傳送方計算出待傳送的二進位制資料的迴圈冗餘碼,並隨同原資料一起傳送到接收方;接收方通過重新計算接收到的資料的迴圈冗餘碼,並和收到的迴圈冗餘碼進行比較,如果兩者相同則可判定所收到的資料是正確的,否則說明資料是錯誤的。其中計算二進位制資料的迴圈冗餘碼的計算過程如下:

1.協議事先約定乙個二進位制生成表示式,本題設為10011;

2.將待傳送的二進位制資料串的末尾加4個0;

3.將補上0的資料串按模2除法除於生成表示式,取餘數;

4.該餘數就是該二進位制資料串的迴圈冗餘碼。

例如: 

資料串為:1101011011

生成表示式為:10011

迴圈冗餘碼為:1110

計算過程如下: 

根據上述的計算方法,請編寫乙個迴圈冗餘碼計算程式,假設二進位制資料串的長度不超過20位,生成表示式固定為10011。

input

輸入的第一行含乙個正整數k (1<=k<=10),表示測試例的個數。後面緊接著k行,每行對應乙個測試例,含乙個n位二進位制串(1<=n<=20),代表資料。

output

每個測試例對應一行輸出,含乙個5位二進位制串,表示迴圈冗餘碼。

sample input

2110101101110101010

sample output

0111001001

模擬。

#include #include #include using namespace std;

char str[30];

char b="10011";

int main()

}for(int i = len-5; i < len; ++i)

printf("%c",str[i]);

printf("\n");

}return 0;

}

關於迴圈冗餘碼

關於迴圈冗餘碼具體是幹嘛的,舉個例子就可明白。你要給遠在他鄉的好友送禮物,假設路上艱險重重,你怎麼保證你的好友收到的禮物一定是你給他傳送的原品呢?這時你想到了乙個辦法,在禮物中額外加點東西,針對這個新的禮物設計一種規則,使得你的好友用這套規則開啟禮物後呈現你倆約定好的模樣,如果能夠實現那麼就是原品,...

迴圈冗餘碼crc

待編碼的有效資訊組多項式 m x 生成多項式 產生校驗碼的多項式 g x 餘數多項式 r x 商 q x 生成多項式是四次的,所以某個多項式除以生成多項式的余式肯定是三次的,所以要加四位0000。生成多項式的選擇是經過實際應用選擇出來的,要滿足一定的要求。r x 為r階,在m x 後面添上r個0 r...

迴圈冗餘校驗碼

crc cyclic redundancy check 迴圈冗餘校驗碼 是常用的校驗碼,在早期的通訊中運用廣泛,因為早期的通訊技術不夠可靠 不可靠性的 是通訊技術決定的,比如電磁波通訊時受雷電等因素的影響 不可靠的通訊就會帶來 確認資訊 的困惑,書上提到紅軍和藍軍通訊聯合進攻山下的敵軍的例子,第一天...