二進位制反碼求和
在看TCP/IP 時,看到IP 協議中有個 首部檢驗和 是用的 二進位制反碼求和。 不太理解,上網搜到了一個答案,記載下面。
以4bit(計算方便一點,和16bit是一樣的)做檢驗和來驗證。
假設原始資料為 1100 , 1010 , 0000(校驗位)
那麼把他們按照4bit一組進行按位取反相加。 1100 取反0011 , 1010 取反是0101,校驗位的計算就是 0011加上0101 是1000,填入到校驗位上
於是傳送的資料就是
1100 , 1010 , 1000
收到資料後同樣進行按位取反相加。0011+0101+0111 =1111;全為1表示正確 。 等於是 自己加上自己的取反, 那麼 結果肯定應該是全1 。如果傳輸正確的話。
相關文章
- Add Binary 二進位制求和
- 理解二進位制原碼、反碼、補碼
- 每日一練(39):二進位制求和
- 二進位制原碼、反碼、補碼詳解
- LeetCode刷題之路:67. 二進位制求和LeetCode
- 計算機二進位制中的原碼,反碼,補碼計算機
- ASCII碼是幾位二進位制碼?ASCII
- 二進位制與二進位制運算
- 進位制詳解:二進位制、八進位制和十六進位制
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- 二進位制
- (二進位制)
- 讓我們一起啃演算法----二進位制求和演算法
- 十進位制——二 (八、十六 )進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 二進位制入門--動態跟蹤原始碼和反彙編程式碼原始碼
- 二進位制、十進位制與十六進位制相互轉化
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 二進位制轉十進位制快速方法
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 什麼是二進位制?二進位制如何轉換?
- 04 二進位制
- Cocoapods 二進位制
- leetcode -- 二進位制LeetCode
- 十進位制轉二進位制推導(草稿)
- JavaScript十進位制轉換為二進位制JavaScript
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 【Redis】原始碼編譯二進位制包Redis原始碼編譯
- 進位制與二進位制及相關轉換
- 二進位制或序列
- 二進位制陣列陣列
- 3416:【例72.1】 二進位制轉化為十進位制