C 高效位運算函式 之 builtin

2021-08-11 04:34:47 字數 622 閱讀 4838

1.__builtin_popcount(n)

該函式時判斷n的二進位制中有多少個1

int n = 15; //二進位制為1111

cout

<<__builtin_popcount(n)該函式是判斷n的二進位制中1的個數的奇偶性

int n = 15;//二進位制為1111

int m = 7;//111

cout

<<__builtin_parity(n)cout

<<__builtin_parity(m)該函式判斷n的二進位制末尾最後乙個1的位置,從一開始

int n = 1;//1

int m = 8;//1000

cout

<<__builtin_ffs(n)cout

<<__builtin_ffs(m)該函式判斷n的二進位制末尾後面0的個數,當n為0時,和n的型別有關

int n = 1;//1

int m = 8;//1000

cout

<<__builtin_ctzll(n)cout

<<__builtin_ctz(m)

高效位運算builtin函式

該函式時判斷n的二進位制中有多少個1 int n 15 二進位制為1111 cout builtin popcount n 該函式是判斷n的二進位制中1的個數的奇偶性 int n 15 二進位制為1111 int m 7 111 cout builtin parity n 該函式判斷n的二進位制末尾...

高效位運算 builtin

int builtin ffs unsigned int x 返回x的最後一位1的是從後向前第幾位,比如7368 1110011001000 返回4。int builtin clz unsigned int x 返回前導的0的個數。int builtin ctz unsigned int x 返回後...

C語言 位運算常用函式實現

如圖 將該二進位制數進行反轉。解決 位運算反轉 unsigned intreversbit unsigned int n n 1 處理完1位丟掉1位 return m 任意給乙個位元組,將其右數第bit位設定為1。例如 為將50的第右數第3位變為1。解決 將乙個位元組ch的右數第bit位設定為1,b...