Python原始碼 八 testbit巨集定義

2021-06-19 01:09:02 字數 529 閱讀 9080

在bitset.h中 ,有這樣乙個巨集定義被廣泛用到 testbit

#define testbit(ss, ibit) (((ss)[bit2byte(ibit)] & bit2mask(ibit)) != 0)

#define bit2byte(ibit) ((ibit) / bitsperbyte)

#define bit2shift(ibit) ((ibit) % bitsperbyte)

#define bit2mask(ibit) (1 << bit2shift(ibit))

ss是乙個byte型別的指標, ibit是乙個int

初看很是費解,分析下來也很簡單, 就是看當i把ss 寫成二進位制形式的時候,

它的第ibit位元位等於1

例如ss = "\000\040",  則 ibit 是13的時候,  巨集定義返回true

Python 原始碼探索(八)

前言 無下劃線的 bz2 hello world 轉眼間,2020 的國慶就到了,預祝大家都節日快樂,心想事成。今年的時間,有急有緩,對我來說,彷彿剛過完春節,就已經到了國慶,在這個舉國歡慶的日子裡,城鄉間,湖河旁,卻沒有了曾經的燈紅酒綠,後悔的事誰都有,後悔的藥卻沒有人吃過,也許最好的後悔藥就是遺...

python原始碼剖析 Python原始碼剖析

第頁共 頁python 原始碼剖析 物件機制 1.物件 在python 的世界中,一切都是物件,乙個整數是乙個物件,乙個字串也是 乙個物件,更為奇妙的是,型別也是乙個物件,整數型別是乙個物件,字串類 型也是乙個物件。從 年guido 在那個聖誕節揭開 python 世界的大幕開始,一直到現在,pyt...

STL原始碼閱讀 八

字串的雜湊函式 f s 5 f s 1 s,當len s 1,則f s s 其中s是指向字串的指標。示例 inline size t stl hash string const char s template struct hash sgi hash table碰撞檢測方法是鏈結法,雜湊表的每個槽都...