1. 程式人生 > >四種GCC內置位運算函數

四種GCC內置位運算函數

style 稀疏 com left table 使用 奇偶校驗 track 內置

  • int __builtin_ffs (unsigned int x)
    返回x的最後一位1的是從後向前第幾位,比方7368(1110011001000)返回4。
  • int __builtin_clz (unsigned int x)
    返回前導的0的個數。
  • int __builtin_ctz (unsigned int x)
    返回後面的0個個數,和__builtin_clz相對。
  • int __builtin_popcount (unsigned int x)
    返回二進制表示中1的個數。

  • int __builtin_parity (unsigned int x)
    返回x的奇偶校驗位,也就是x的1的個數模2的結果。

此外,這些函數都有對應的usigned long和usigned long long版本號,僅僅須要在函數名後面加上l或ll就能夠了。比方int __builtin_clzll。

此外,基於稀疏表(Sparse Table)的RMQ問題,能夠使用 __builtin_clz函數進行預處理。


四種GCC內置位運算函數