Estas son cuatro importantes funciones integradas en el compilador GCC:
- __builtin_popcount(x): esta función se utiliza para contar el número de uno (bits establecidos) en un número entero.
Ejemplo:
if x = 4 binary value of 4 is 100 Output: No of ones is 1.
C
// C program to illustrate _builtin_popcount(x) #include <stdio.h> int main() { int n = 5; printf("Count of 1s in binary of %d is %d ", n, __builtin_popcount(n)); return 0; }
Producción:
Count of 1s in binary of 5 is 2
- Nota: Del mismo modo, puede usar __builtin_popcountl(x) y __builtin_popcountll(x) para tipos de datos largos y largos.
- __builtin_parity(x): esta función se utiliza para comprobar la paridad de un número. Esta función devuelve verdadero (1) si el número tiene paridad impar; de lo contrario, devuelve falso (0) para paridad par.
Ejemplo:
if x = 7 7 has odd no. of 1's in its binary(111). Output: Parity of 7 is 1
C
// C program to illustrate _builtin_parity(x) #include <stdio.h> int main() { int n = 7; printf("Parity of %d is %d ", n, __builtin_parity(n)); return 0; }
Producción:
Parity of 7 is 1
- Nota: Del mismo modo, puede usar __builtin_parityl(x) y __builtin_parityll(x) para tipos de datos largos y largos.
- __builtin_clz(x): esta función se utiliza para contar los ceros iniciales del entero. Nota: clz = cuenta los ceros iniciales
Ejemplo: cuenta el número de ceros antes de la primera aparición de uno (bit establecido).
a = 16 Binary form of 16 is 00000000 00000000 00000000 00010000 Output: 27
C
// C program to illustrate __builtin_clz(x) #include <stdio.h> int main() { int n = 16; printf("Count of leading zeros before 1 in %d is %d", n, __builtin_clz(n)); return 0; }
Producción:
Count of leading zeros before 1 in 16 is 27
- Nota: __builtin_clz(x) Esta función solo acepta valores sin firmar
Nota: Del mismo modo, puede usar __builtin_clzl(x) y __builtin_clzll(x) para tipos de datos largos y largos. - __builtin_ctz(x): Esta función se usa para contar los ceros finales del entero dado. Nota: ctz = contar ceros finales.
Ejemplo: cuente el número de ceros desde la última hasta la primera aparición de uno (bit establecido).
a = 16 Binary form of 16 is 00000000 00000000 00000000 00010000 Output: ctz = 4
C
// C program to illustrate __builtin_ctz(x) #include <stdio.h> int main() { int n = 16; printf("Count of zeros from last to first " "occurrence of one is %d", __builtin_ctz(n)); return 0; }
Producción:
Count of zeros from last to first occurrence of one is 4
- Nota: Del mismo modo, puede usar __builtin_ctzl(x) y __builtin_ctzll(x) para tipos de datos largos y largos.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA