1. 程式人生 > >C裡跟二進位制相關的__built_in_

C裡跟二進位制相關的__built_in_

在進行狀態壓縮的時候經常需要對一個數的二進位制形式進行一些操作,這些處理起來也挺麻煩的,gcc提供了幾個跟二進位制相關的__built_in_函式如下:

int __builtin_clz (unsigned int x):x用二進位制表示,前導零的數量

int __builtin_ctz (unsigned int x):x用二進位制表示,字尾零的數量

int __builtin_popcount(unsigned int n) :x用二進位制表示,1的數量

int __builtin_parity(unsigned int n):x用二進位制表示,1的數量的奇偶性

int __builtin_ffs(unsigned int n):x用二進位制表示,最後一個1從低位向高位是第幾位(也就是字尾0的數量+1)