Namespaces
Variants

std:: countr_one

From cppreference.net
Utilities library
Défini dans l'en-tête <bit>
template < class T >
constexpr int countr_one ( T x ) noexcept ;
(depuis C++20)

Retourne le nombre de bits consécutifs 1 dans la valeur de x , en commençant par le bit le moins significatif (« droite »).

Cette surcharge participe à la résolution de surcharge uniquement si T est un type entier non signé (c'est-à-dire, unsigned char , unsigned short , unsigned int , unsigned long , unsigned long long , ou un type entier non signé étendu).

Table des matières

Paramètres

x - valeur de type entier non signé

Valeur de retour

Le nombre de bits consécutifs 1 dans la valeur de x , en commençant à partir du bit le moins significatif.

Notes

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_bitops 201907L (C++20) Opérations binaires

Exemple

#include <bit>
#include <bitset>
#include <cstdint>
#include <iostream>
int main()
{
    for (const std::uint8_t i : {0, 0b11111111, 0b11111110, 0b11100011})
        std::cout << "countr_one( " << std::bitset<8>(i) << " ) = "
                  << std::countr_one(i) << '\n';
}

Sortie :

countr_one( 00000000 ) = 0
countr_one( 11111111 ) = 8
countr_one( 11111110 ) = 0
countr_one( 11100011 ) = 2

Voir aussi

compte le nombre de bits 0 consécutifs, en commençant par le bit le plus significatif
(modèle de fonction)
(C++20)
compte le nombre de bits 1 consécutifs, en commençant par le bit le plus significatif
(modèle de fonction)
compte le nombre de bits 0 consécutifs, en commençant par le bit le moins significatif
(modèle de fonction)
(C++20)
compte le nombre de bits 1 dans un entier non signé
(modèle de fonction)
vérifie si un nombre est une puissance entière de 2
(modèle de fonction)
retourne le nombre de bits définis à true
(fonction membre publique de std::bitset<N> )
vérifie si tous, certains ou aucun des bits sont définis à true
(fonction membre publique de std::bitset<N> )