Maison  >  Article  >  développement back-end  >  Programme PHP pour compter le nombre de bits définis dans un entier

Programme PHP pour compter le nombre de bits définis dans un entier

PHPz
PHPzavant
2023-08-22 11:41:13829parcourir

Qu'est-ce que le code binaire ?

Le code binaire est un système qui utilise un système de nombres binaires pour représenter des informations ou des données. Il utilise seulement deux nombres, généralement 0 et 1, pour représenter toutes les valeurs. Chaque nombre du code binaire est appelé un bit (abréviation de chiffre binaire).

En code binaire, chaque nombre représente une puissance de 2. En commençant par le chiffre le plus à droite, les puissances de 2 augmentent de droite à gauche. Par exemple, dans un code binaire de 8 bits, le bit le plus à droite représente 2^0 (1), le bit suivant représente 2^1 (2), le bit suivant représente 2^2 (4), et ainsi de suite.

Exemple

Convertissons le nombre décimal 42 en code binaire. Pour convertir 42 en binaire, nous le divisons continuellement par 2 et gardons une trace du reste jusqu'à ce que le quotient devienne nul.

Voici le processus étape par étape :

Premier pas

42 ÷ 2 = 21, le reste est 0

Étape 2

21 ÷ 2 = 10, le reste est 1

Étape 3

10 ÷ 2 = 5, le reste est 0

Étape 4

5 ÷ 2 = 2, le reste est 1

Étape 5

2 ÷ 2 = 1, le reste est 0

Étape 6

1 ÷ 2 = 0, le reste est 1

Pour obtenir la représentation binaire, on part du bas (le dernier reste) et on lit les restes de bas en haut

Le code binaire pour 42 est : 101010

Ainsi, le nombre décimal 42 est représenté en code binaire par 101010.

Qu'est-ce que Setbit ?

Dans le contexte du code binaire, un bit défini fait référence à un nombre binaire (bit) défini sur 1. Les bits clairs, quant à eux, font référence à des chiffres binaires (bits) définis sur 0.

Exemple

Par exemple, dans le code binaire 101010, il y a trois bits définis (correspondant à des positions d'une valeur de 1) et trois bits clairs (correspondant à des positions d'une valeur de 0).

Programme PHP : comptez le nombre de bits définis dans un entier

Programme PHP pour compter le nombre de bits définis dans un entier

Méthode 1 : parcourir tous les bits de l'entier

Exemple

<?php
// Function to get no of set
// bits in binary representation
// of positive integer n
function countSetBits($n)
{
	$count = 0;
	while ($n)
	{
		$count += $n & 1;
		$n >>= 1;
	}
	return $count;
}

// Driver Code
$number= 12;
echo "Number of setbits in $number: " .countSetBits($number);
?>

Sortie

Number of setbits in 12: 2

Méthode 2 : Méthode récursive

<?php
// PHP implementation of recursive
// approach to find the number of
// set bits in binary representation
// of positive integer n

// recursive function
// to count set bits
function countSetBits($n)
{
	// base case
	if ($n == 0)
		return 0;

	else

		// if last bit set
		// add 1 else add 0
		return ($n & 1) +
				countSetBits($n >> 1);
}

// Driver code

// get value from user
$n = 123;

// function calling
echo "Number of setbits in $n are: ".countSetBits($n);
?>

Sortie

Number of setbits in 123 are: 6

Conclusion

En résumé, nous pouvons compter le nombre de bits définis (1) dans un entier en utilisant une approche récursive et en parcourant tous les bits. La méthode de boucle consiste à utiliser une boucle while pour parcourir chaque bit de l'entier. Nous initialisons une variable compteur et itérons jusqu'à ce que le nombre atteigne 0. À l’intérieur de la boucle, nous effectuons un ET au niveau du bit avec 1 en utilisant l’opérateur AND au niveau du bit pour vérifier le bit le moins significatif. S'il est égal à 1, on incrémente le compteur. Ensuite, nous déplaçons la place numéro 1 vers la droite. Ce processus se poursuit jusqu'à ce que tous les bits aient été vérifiés et que le décompte final soit renvoyé.

Pour les méthodes récursives, nous pouvons définir une fonction récursive qui prend un entier en entrée. Dans la fonction, nous utilisons l'opérateur ET au niveau du bit et 1 pour vérifier le bit le moins significatif. S'il est égal à 1, on incrémente un compteur. Nous décalons ensuite le numéro d'une place vers la droite et appelons la fonction de manière récursive avec le numéro mis à jour. Le cas de base est que lorsque le nombre atteint 0, on renvoie la valeur du compteur. Cette méthode calcule récursivement les bits définis jusqu'à ce que le nombre devienne 0. Les deux méthodes fournissent un moyen de compter les bits définis dans un nombre entier, avec différentes options de mise en œuvre en fonction des besoins et des préférences spécifiques du programmeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer