ForHosting KIT · Outils pour développeurs

Calculateur de popcount

Comptez combien de uns un nombre possède en binaire : 42 écrit sur 8 bits donne 00101010, avec 3 uns aux positions 1, 3 et 5 et 5 zéros. Pratique pour les indicateurs, les masques de bits et les exercices sur le poids de Hamming. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Valeur
42
Bits
8
Vous obtenez
Binaire
00101010
Nombre de bits à 1
3
Bits à zéro
5
Indices des bits actifs
1, 3, 5

Le population count, souvent abrégé popcount ou appelé poids de Hamming, est le nombre de bits à un dans la représentation binaire d’un entier. Les développeurs s’en servent pour dimensionner des bitsets, scorer des traits proches de la parité sans checksum complet, estimer la cardinalité de masques de type bloom filter, et confronter des intrinsics du compilateur comme __builtin_popcount à une référence. Ce calculateur de population count accepte un entier non négatif et une largeur de bits fixe optionnelle ; il renvoie le motif binaire rempli de zéros, le total des bits à un, combien de zéros complètent cette largeur, et les indices de chaque un en partant du bit de poids faible.

Ce que signifie le population count et pourquoi les développeurs le demandent

En arithmétique machine, le population count d’un entier non négatif est simplement le nombre de ses chiffres binaires qui valent un. La même grandeur porte plusieurs noms : poids de Hamming de la chaîne de bits, somme latérale, ou résultat d’instructions matérielles telles que POPCNT sur x86 et CNT sur ARM.

Compter les bits à un n’est pas la même chose que convertir de base ou calculer seule la parité : la conversion donne le motif, la parité le réduit à pair ou impair, et le popcount rapporte la cardinalité complète des bits à un.

Cette cardinalité compte lorsqu’un champ de flags regroupe des booléens indépendants, lorsqu’un masque creux représente des colonnes sélectionnées dans un store de lignes, lorsqu’un pipeline graphique a besoin du nombre d’échantillons actifs, et lorsque les problèmes d’entretien demandent la distance de Hamming entre deux mots — qui n’est que le population count de leur XOR bit à bit.

Ce point d’accès implémente un parcours déterministe de gauche à droite sur une largeur fixe afin que la chaîne binaire remplie et la liste des indices de bits à un restent stables d’un runtime à l’autre.

Quand compter les bits à un rend service

Les équipes de compilateurs et de runtimes de langage comparent __builtin_popcount, Integer.bitCount et des intrinsics voisins à une référence pure lors de la validation de la compilation croisée et des shims WASM. Les ingénieurs bases de données et recherche utilisent le population count sur des bitmaps de listes de postings et des blocs de style roaring pour estimer la sélectivité avant de matérialiser les postings.

Le code de sécurité et de protocoles compte les bits dans des masques de capacités et des bitfields de permissions lorsqu’il journalise combien de privilèges un jeton détient réellement. Les plateformes de classe et les sandboxes d’entretiens de code ont besoin d’un popcount déterministe qui montre le motif rempli à côté du total pour que l’apprenant voie quelles positions contribuent. Une validation échouée ne consomme pas le solde.

Oracles d’intrinsics et de tests unitaires

Comparez POPCNT matériel ou helpers bitCount du langage à un binaire rempli pur et au popcount pour des largeurs fixes en CI.

Cardinalité de bitsets et de flags

Estimez combien de flags ou de colonnes bitmap sont actifs dans un masque avant d’étendre la liste complète des fonctionnalités.

Enseigner le poids de Hamming

Montrez aux élèves le motif rempli de zéros et les indices LSB en premier à côté du total des uns pour entretiens et devoirs.

Qu’est-ce que le population count (popcount) ?

Le population count est le nombre de bits à 1 dans la forme binaire d’un entier — aussi appelé poids de Hamming.

Le calculateur accepte-t-il les nombres négatifs ?

Non. Value doit être un entier non négatif. Les interprétations en complément à deux des négatifs sont hors périmètre ; utilisez un outil dédié de complément à deux si vous avez besoin de largeurs signées.

Que contrôle le paramètre bits ?

Bits fixe la largeur non signée utilisée pour remplir binary de zéros et pour les contrôles de plage (1–53).

Comment obtenir la distance de Hamming entre deux nombres ?

Combinez les deux nombres par un ou exclusif bit à bit, puis comptez ici les uns du résultat. Chaque un marque une position où les nombres diffèrent : ce total est leur distance de Hamming.

Comment les positions des uns sont-elles numérotées ?

En partant de la droite, à 0 pour le bit de poids faible. C'est pourquoi 42, écrit 00101010 sur 8 bits, a ses uns aux positions 1, 3 et 5.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/population-count

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/population-count \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":42}'
{
  "value": 42
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.population_count",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Les entrées négatives et non entières échouent avec invalid_input au lieu d’inventer une interprétation en complément à deux que vous n’avez pas demandée.

Ce que signifie le population count et pourquoi les développeurs le demandent

Zéro a un population count de zéro et un motif d’un seul bit à zéro lorsqu’aucune largeur n’est imposée ; le plus grand entier sûr de JavaScript tient encore en cinquante-trois bits de mantisse, borne supérieure acceptée par ce calculateur pour que chaque résultat reste un nombre JSON exact.

Contrat d’entrée, largeur de remplissage et champs de réponse

Envoyez optionnellement bits, un entier de un à cinquante-trois, pour fixer la largeur de mot non signée utilisée pour le remplissage de zéros et le contrôle de plage. Envoyez en POST un objet JSON avec value, un entier non négatif obligatoire (nombre JSON ou chaîne de chiffres) de zéro à Number.MAX_SAFE_INTEGER. Lorsque bits est présent, value doit satisfaire zéro inférieur ou égal à value et value inférieur à deux à la puissance bits (plafonné par la limite d’entier sûr pour les grandes largeurs). Lorsque bits est omis, la largeur par défaut est la longueur naturelle en bits de value — plancher du logarithme en base deux plus un — ou un lorsque value vaut zéro, de sorte que le champ binary ne soit jamais une chaîne vide. En cas de succès le corps répète value et bits ; binary est le motif de bits rempli de zéros avec le bit de poids fort à gauche ; popcount est le poids de Hamming ; zero_bits vaut bits moins popcount ; set_bit_indices liste chaque position où un un apparaît avec le bit de poids faible comme indice zéro ; et method est la constante population_count pour les clients qui branchent selon l’identité de l’outil. Exemple : value quarante-deux avec bits huit donne binary zéro-zéro-un-zéro-un-zéro-un-zéro, popcount trois, zero_bits cinq, et indices un, trois et cinq. Value manquant, négatifs, fractions, chaînes non numériques, bits hors de un à cinquante-trois, ou value qui déborde la largeur choisie échouent avec invalid_input et ne sont pas facturés. Les objets et tableaux vides sont rejetés avec un court message de contrat afin que les bugs de SDK apparaissent immédiatement.

Où une API de popcount apporte de la valeur dans des flux réels

Comme l’implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002, sans jetons de modèle ni réseau sortant.

Comment set_bit_indices est-il ordonné ?

Les indices utilisent le bit de poids faible comme position 0 et listent chaque bit à 1 du bas vers le haut. Par exemple, value 5 (binaire 101) donne les indices [0, 2].

Que coûte le calculateur de population count ?

L’outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.

Consulter la documentation complète du KIT →