checksum二進位制反碼求和計算方法

2022-07-17 23:00:25 字數 414 閱讀 3280

checksum二進位制反碼求和計算方法:

ip報文:將首部不包含資料,分成多個16位字的序列,將檢驗和置零,然後進行反碼算術運算把所有16位字相加後,將得到的  和的反碼  寫入檢驗和字段。接收方接收到後,再按照16位字的序列計算一次,得到的和為1,取反碼為0.

udp:新增乙個12位元組 ip偽首部(源ip 4位元組 + 目的ip 4位元組 + 1全零位元組 + 協議型別17  1位元組 +  udp長度 2位元組 ),偽首部、udp首部和資料部分一起檢驗,資料部分不是偶數個位元組,則要填入乙個全零位元組,此位元組不傳送,計算方法同上。

tcp:同udp檢驗。

unsigned short checksum(unsigned short *buf, int

length)

return ~sum;

}

二進位制的補碼 反碼

本部落格介紹如何求二進位制數的原碼 補碼 反碼。對於正數來說,原碼,反碼,補碼都是一樣的。對於負數,即二進位制最高為1 求補碼 從數的右邊往左開始數,遇到 0 不理它,直到遇到第乙個 1 為止 不包括這個1 以後的每一位數取反即是它的原碼或補碼,符號位不變,還是 1 補碼的補碼是原碼 如原碼 110...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制原碼 反碼 補碼詳解

原碼 原碼是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼表示為 0 000 0110 其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼表示為 1 000 0110 以上...