2016-11-28 49 views
-2

在一個網絡數據包報頭中,當1的補碼與8位字節一起使用(而不是TCP中通常使用的16位)時,是否可以檢測到1位錯誤?1的補碼 - 是否可以檢測到1位或2位錯誤?怎麼樣?爲什麼?

可以檢測到2位錯誤嗎?

如果他們可以如何以及爲什麼會發生這種情況?

+0

TCP校驗和使用16位字,而不是8位字節,所以這個問題是沒有意義的。 –

+0

你正在尋找的詞是'補充'。 – EJP

+0

我在第三年Comp科學課堂任務中得到了這個問題。雖然我在互聯網上發現了一些是或否的答案,但我還沒有找到任何人可以解釋爲什麼? –

回答

1

這是1的補碼與3個8位字節一起工作的方式。 (在TCP而不是16位)

10011001 
+ 01010010 
___________ 
    11101011 
+ 01011001 
___________ 
1 01000100 
      1 Wrap Around and add 9th Bit 
___________ 
    01000101 <- Sum 
___________ 
    10111010 <- 1’s Complement 

如果有,他們都將被檢測到第1位的錯誤,但是2位錯誤可以被忽視。

10011000 <- last bit switched (should be 10011001) 
+ 01010011 <- last bit switched (should be 01010010) 
___________ 
    11101011 
+ 01011001 
___________ 
1 01000100 
      1 <- Wrap Around and add 9th Bit 
___________ 
    01000101 <- Sum 
___________ 
    10111010 <- 1’s Complement with 2 bit error is the same as previous answer