Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

La librairie <stdbit.h> (C23)

La librairie stdatomic.h stdc_leading_zeros


Accès rapide :
Présentation de l'entête <stdbit.h>
Entête à inclure
Exemple d'utilisation
Eléments fournis par la librairie <stdbit.h>

Présentation de l'entête <stdbit.h>

La librairie <stdbit.h>, introduite avec C23, regroupe des utilitaires pour analyser et manipuler les bits des entiers non signés. Elle évite de réécrire à la main des opérations classiques comme le comptage de bits, la recherche du premier bit positionné ou l'arrondi à une puissance de deux.

POSIX n'ajoute pas d'élément propre à cette librairie. Les fonctions et macros présentées ici relèvent du standard C ISO.

Entête à inclure

#include <stdbit.h>

Exemple d'utilisation

L'exemple suivant compte les bits à 1 d'une valeur entière non signée.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
#include <stdbit.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    unsigned int flags = 0x35u;

    printf( "%u\n", stdc_count_ones( flags ) );
    return EXIT_SUCCESS;
}
Utilisation simple de stdbit.h

Cet exemple produit l'affichage suivant.

4

Eléments fournis par la librairie <stdbit.h>

Nom Type Description Depuis
__STDC_VERSION_STDBIT_H__ macro Version de l'entête stdbit.h. C23
__STDC_ENDIAN_BIG__, __STDC_ENDIAN_LITTLE__, __STDC_ENDIAN_NATIVE__ macros Constantes décrivant l'endianness de la plate-forme. C23
stdc_leading_zeros macro générique compte le nombre de bits à 0 consécutifs en partant du bit de poids fort. C23
stdc_leading_ones macro générique compte le nombre de bits à 1 consécutifs en partant du bit de poids fort. C23
stdc_trailing_zeros macro générique compte le nombre de bits à 0 consécutifs en partant du bit de poids faible. C23
stdc_trailing_ones macro générique compte le nombre de bits à 1 consécutifs en partant du bit de poids faible. C23
stdc_first_leading_zero macro générique retourne la position du premier bit à 0 en partant du bit de poids fort, ou 0 s'il n'y en a pas. C23
stdc_first_leading_one macro générique retourne la position du premier bit à 1 en partant du bit de poids fort, ou 0 s'il n'y en a pas. C23
stdc_first_trailing_zero macro générique retourne la position du premier bit à 0 en partant du bit de poids faible, ou 0 s'il n'y en a pas. C23
stdc_first_trailing_one macro générique retourne la position du premier bit à 1 en partant du bit de poids faible, ou 0 s'il n'y en a pas. C23
stdc_count_zeros macro générique compte le nombre total de bits à 0 dans la représentation de la valeur. C23
stdc_count_ones macro générique compte le nombre total de bits à 1 dans la représentation de la valeur. C23
stdc_has_single_bit macro générique indique si la valeur contient exactement un seul bit à 1. C23
stdc_bit_width macro générique retourne le nombre de bits nécessaires pour représenter la valeur. C23
stdc_bit_floor macro générique retourne la plus grande puissance de deux inférieure ou égale à la valeur. C23
stdc_bit_ceil macro générique retourne la plus petite puissance de deux supérieure ou égale à la valeur. C23


La librairie stdatomic.h stdc_leading_zeros




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé