2012年6月15日 星期五

[ Python 範例代碼 ] Read the bits in a byte


前言 :
當你在處理 binary 的 data 時, 你可能定義了某個 byte 的某個 bit 代表某個 flag, 而你需要從 byte 讀出某個 bit 可以參考下面範例.

範例代碼 :
- 把 byte 轉成二進位字串處理
>>> b = 0x83
>>> "{0:08b}".format(b)
'10000011'
>>> "{0:08b}".format(b)[0] # 從 higher bit 開始取
'1'
>>> "{0:08b}".format(b)[1]
'0'
>>> "{0:08b}".format(b)[3]
'0'
>>> "{0:08b}".format(b)[-1] # 從 lower bit 開啟取.
'1'
>>> "{0:08b}".format(b)[-2]
'1'
>>> "{0:08b}".format(b)[-3]
'0'

- 對 byte 進行 shift
>>> b = 0x83
>>> "{0:08b}".format(b)
'10000011'
>>> def bit(byte, pos): # 定義取出 bit 的函數
... print('{0}'.format((byte >> pos) & 1))
...
>>> bit(b, 0) # 取出 byte=0x1000001'1'
1
>>> bit(b, 1) # 取出 byte=0x100000'1'1
1
>>> bit(b, 2) # 取出 byte=0x10000'0'11
0

沒有留言:

張貼留言

[ Java 文章收集 ] 局部敏感哈希 (Locality-Sensitive Hashing, LSH) 方法介紹

Source From  Here   Preface   本文主要介紹一種用於海量高維數據的近似最近鄰快速查找技術—— 局部敏感哈希  ( Locality-Sensitive Hashing, LSH ),內容包括了 LSH 的原理、LSH 哈希函數集、以及 LSH 的一...