2017-05-06 46 views
0

在閱讀WebSocket protocol standard,我遇到以下通道:如果整數的最高有效位爲零,這意味着什麼?

「有效載荷數據」,以字節爲單位的長度:如果0-125,即有效載荷的長度。如果爲126,則以下2個字節解釋爲16位無符號整數是淨荷長度。如果爲127,則將以下8個字節解釋爲64位無符號整數(最高有效位必須爲0)是有效負載長度。多字節長度數量以網絡字節順序表示。

我有兩個問題:

  1. 何謂 「最顯著位必須爲0」?我的理解是,1比0更重要,所以唯一最重要的位是0的數字本身就是0。顯然,這是不對的。這實際上意味着什麼?
  2. 「多字節長度量以網絡字節順序表示」是什麼意思?我假設這是說2字節和8字節有效載荷長度以網絡字節順序表示,但是網絡字節順序?
+0

最重要的位是翻轉時最多的數字 - 最左邊的數字。網絡字節順序是big-endian。 – Ryan

+0

@Ryan謝謝,這有幫助 – Jack

回答

1

最高有效位是指表示數字的位序列中的最大位置值位置處的位。考慮一個四位序列。在此,如果將最高有效位限制爲0,則結果4位數字看起來像0XXX,其中每個X可以是0或1.

在上述文檔中,有效負載長度字段標記爲127當你有一個長度需要超過2個字節(16位)來表示的有效載荷。在這種情況下,有效載荷字段中的127(或1111111)不表示長度,而是充當標誌以指示以下八個字節全部是有效載荷字段的一部分。它表明這八個字節中的最高有效位必須是0.這意味着有效載荷字段的最左邊的位必須被設置爲0(即幀中的字節編號16)。

網絡字節順序是指大端系統的編碼,因爲它用於網絡傳輸。