天天看點

資料封包解析中的高低位轉換問題。

bit(比特)

為1資料位,取值 0或1;

byte(位元組)

1位元組8個bit ,一個byte表示無符号類型unsigned表示為0-255之間的值,表示有符号為-128-127。何為有符号類型,即可以表示為負數,0,正數,而無符号類型則僅表示為大于等于0的值

word(字)

在16位的系統中(比如8086微機) 1字 (word)= 2位元組(byte)= 16(bit)

在32位的系統中(比如win32) 1字(word)= 4位元組(byte)=32(bit)

在64位的系統中(比如win64)1字(word)= 8位元組(byte)=64(bit)

 最小的記憶體塊成為“位元組”,儲存的基本機關稱為“字”。

最近做資料采集時,采集的16進制封包,流量占用資料區4個位元組,其中低位在前,高位在後。

封包為: 

37 07 00 00

流量資料占用四個位元組,這條資料隻占用了2個位元組,低位在前那麼就是 37是低位,07是高位;

上面說了一個位元組8個bit 那麼2個位元組就是16個bit  轉換程二進制顯示就是

00000000  00000000

二進制資料 從右到左依次是低位到高位,十進制也是這樣 例如:86000 八萬六 最高位是萬位在最左側。

37位低位,07是高位  分别将 16進制的 37 和07 轉換為二進制資料

37----》 110111

07----》 111

按照高低位規則轉換後得到二進制資料

00000111 00110111

将其轉換為10進制資料得到 

1847

得到最終展示的資料1847.

一般一個16位(雙位元組)的資料,比如 FF1A  (16進制)

那麼高位位元組就是FF,低位是1A

如果是32位的資料,比如  3F68415B

高位字 是3F68

低位字是415B

上一篇: 讓你更成功