計算機網路中,16位校驗和的實現

2021-08-11 15:11:56 字數 1521 閱讀 5917

#include #include #include #include #include using namespace std;

struct m

;struct mm

;mm add(mm g1, mm g2)

; int ff[4] = ;

int c1, c2, c3, c4;

c1 = g1.m2.low + g2.m2.low;

if (c1 >= 16) f[3] = 1;

c2 = g1.m2.hegiht + g2.m2.hegiht;

if (c2 >= 16) f[2] = 1;

c3 = g1.m1.low + g2.m1.low;

if (c3 >= 16) f[1] = 1;

c4 = g1.m1.hegiht + g2.m1.hegiht;

if (c4 >= 16)f[0] = 1;

/* if ((c1 + f[0]) / 16) ff[3] = 1;

demo.m2.low = (c1 + f[0]) % 16;

if ((c2 + f[3] + ff[3]) / 16) ff[2] = 1;

demo.m2.hegiht = (c2 + f[3]+ff[3]) % 16;

if ((c3 + f[2] + ff[2]) / 16) ff[1] = 1;

demo.m1.low = (c3 + f[2]+ff[2]) % 16;

demo.m1.hegiht = (c4 + f[1]+ff[1]) % 16;*/

demo.m2.low = (c1 + f[0]) % 16;

demo.m2.hegiht = (c2 + f[3]) % 16;

demo.m1.low = (c3 + f[2]) % 16;

demo.m1.hegiht = (c4 + f[1]) % 16;

return demo;

}void show(mm key)

{ char a, b, c, d;

if (key.m1.hegiht>9)a = key.m1.hegiht - 10 + 'a';

else a = key.m1.hegiht + '0';

if (key.m1.low>9)b = key.m1.low - 10 + 'a';

else b = key.m1.low + '0';

if (key.m2.hegiht>9)c = key.m2.hegiht - 10 + 'a';

else c = key.m2.hegiht + '0';

if (key.m2.low>9)d = key.m2.low - 10 + 'a';

else d = key.m2.low + '0';

cout《演算法思路:

開啟要校驗的文字檔案,

每個字元得讀取,直到讀取到檔案最後

通過該字元的acaii變化成16進製表示

然後儲存並和下乙個字元組成乙個雙16進製表示的數值

然後累加

返回累加值

計算機網路 16 計算機網路應用示例

目錄 二 語音 的流量控制 服務質量qos 1 資料分組標記優先順序 2 路由器流量管制 3 路由器排程機制分配頻寬 4 呼叫接納 三 無線網路 無線區域網的組成 1 有固定基礎設施的無線區域網 2 移動自組網路 二 語音 的流量控制 狹義的ip 就是指在ip網路上打 所謂的 ip網路 就是 使用i...

計算機網路 CRC校驗

crc即迴圈冗餘校驗碼 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。方法 迴圈冗餘檢驗的原理 在資料鏈...

計算機網路 CRC校驗

crc即迴圈冗餘校驗碼 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。方法 迴圈冗餘檢驗的原理 在資料鏈...