對於這個演算法,很多書上只是說一下思路,沒有具體的實現。我在這裡舉個例子吧。
以4bit(計算方便一點,和16bit是一樣的)做檢驗和來驗證。
建設原始資料為 1100 , 1010 , 0000(校驗位)
那麼把他們按照4bit一組進行按位取反相加。 1100取反0011 , 1010取反是0101,0011加上0101 是1000,填入到校驗位後
1100 , 1010 , 1000
那麼這個就是要傳送的資料。收到資料後同樣進行按位取反相加。0011+0101+0111 =1111;全為1表示正確
另外注意,當地一步計算校驗和的時候,有可能相加後最高位會有進製,那麼不能捨棄,一定要加到低位,才能是結果正確。
TCP IP 中的二進位制反碼求和演算法
以4bit 計算方便一點,和16bit是一樣的 做檢驗和來驗證。建設原始資料為 1100 1010 0www.cppcns.com000 校驗位 那麼把他們按照4bit一組進行按位取反相加。1100取反0 1010取反是0101,0011加上程式設計客棧0101 是10填入到校驗位後 1100 1m...
二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 1 使用jdk進製轉化 1,第一時間想到使用jdk自帶方法,將給定的二進位制數轉化為十進位制 2,...
二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 最直觀的解法 public string addbinary string a,string b ...