給定資料段中找到第乙個有效bit實現 檔案系統

2021-06-18 23:39:57 字數 1135 閱讀 6078

檔案系統中查詢,空閒inode時候需要用到

乙個每個檔案系統都有自己的實現(如minix),現在kernel中統一呼叫這個:

static inline unsigned long find_first_zero_bit_le(const void *addr,

unsigned long size)

找到最近的乙個還有有效bit的字:

unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)

if (!size)

return result;

tmp = (*p) | (~0ul << size);

if (tmp == ~0ul) /* are any bits zero? */

return result + size; /* nope. */

found:

return result + ffz(tmp);

}

在乙個字裡面找有效bit的位置,這個方法kernel中有很多實現,其中大部分是

直接用彙編實現的(當然也大部分看不懂),其中有個c語言實現很有意思(乙個字裡面還用上了二分差查詢)

/**

* __ffs - find first bit in word.

* @word: the word to search

* * undefined if no bit exists, so code should check against 0 first.

*/static __always_inline unsigned long __ffs(unsigned long word)

#endif

if ((word & 0xffff) == 0)

if ((word & 0xff) == 0)

if ((word & 0xf) == 0)

if ((word & 0x3) == 0)

if ((word & 0x1) == 0)

num += 1;

return num;

}

找到第乙個丟失的正數

given an unsorted integer array,find the first missing positive integer.for example,given 1,2,0 return3,and 3,4,1,1 return2.此題關鍵在於理解first missing posi...

在乙個有序數列中找到第乙個比x大的數的位置

print res res,第乙個比 s大的數為 x,l res a 3,6,7,7,9,10,13 binary search a,0 binary search a,2 binary search a,3 binary search a,6 binary search a,7 binary se...

在乙個字串中找到第乙個只出現一次的字元

在乙個字串中找到第乙個只出現一次的字元 題目 在乙個字串中找到第乙個只出現一次的字元。如輸入abaccdeff,則輸出b。我的思路是 如果要知道乙個字元是否只出現過一次,必須遍歷一次字串 知道所有字元出現過的情況,從前從後都可以。但在遍歷中要用陣列統計每個字元的出現次數,到最後將,再遍歷一遍陣列,得...