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

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

王林
王林original
2024-08-28 12:07:181113parcourir

Qu'est-ce que le code binaire ?

Le code binaire est un système de représentation d'informations ou de données à l'aide d'un système numérique en base 2. Il utilise seulement deux chiffres, généralement 0 et 1, pour représenter toutes les valeurs. Chaque chiffre d'un code binaire est appelé un bit (abréviation de chiffre binaire).

En code binaire, chaque chiffre représente une puissance de 2. En partant du 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 suivant représente 2^2 (4), et ainsi de suite.

Exemple

Prenons le nombre décimal 42 et représentons-le en code binaire. Pour convertir 42 en binaire, on le divise successivement par 2 et on garde une trace des restes jusqu'à ce que le quotient devienne nul.

Voici le processus étape par étape :

Étape 1

42 ÷ 2 = 21, reste 0

Étape 2

21 ÷ 2 = 10, reste 1

Étape 3

10 ÷ 2 = 5, reste 0

Étape 4

5 ÷ 2 = 2, reste 1

Étape 5

2 ÷ 2 = 1, reste 0

Étape 6

1 ÷ 2 = 0, reste 1

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

Le code binaire résultant pour 42 est : 101010

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

Qu'est-ce que Setbit ?

Dans le contexte du code binaire, un bit défini fait référence à un chiffre binaire (bit) défini sur la valeur 1. D'autre part, un bit clair fait référence à un chiffre binaire défini sur la valeur 0.

Exemple

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

Programme PHP pour compter les bits définis dans un entier

PHP Program to Count set Bits in an Integer

Méthode 1 : parcourir tous les bits d'un nombre 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 : Approche 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 conclusion, nous pouvons compter les bits définis (1) dans un entier en utilisant à la fois une approche récursive et une boucle sur tous les bits en PHP. L’approche en boucle consiste à parcourir chaque bit de l’entier à l’aide d’une boucle while. Nous initialisons une variable de compteur et itérons jusqu'à ce que le nombre devienne 0. À l'intérieur de la boucle, nous utilisons AND au niveau du bit avec 1 pour vérifier le bit le moins significatif. S'il est égal à 1, on incrémente le compteur. Ensuite, nous décalons le nombre vers la droite de 1 bit. Ce processus se poursuit jusqu'à ce que tous les bits aient été vérifiés et que le décompte final soit renvoyé.

Pour l'approche récursive, nous pouvons définir une fonction récursive qui prend un entier en entrée. À l'intérieur de la fonction, nous vérifions le bit le moins significatif en utilisant l'opérateur ET au niveau du bit avec 1. S'il est égal à 1, nous incrémentons un compteur. Ensuite, nous décalons le numéro de 1 bit vers la droite et appelons récursivement la fonction avec le numéro mis à jour. Le cas de base est celui où le nombre devient 0, auquel cas nous renvoyons le compteur. Cette approche compte récursivement les bits définis jusqu'à ce que le nombre devienne 0. Les deux approches fournissent un moyen de compter les bits définis dans un nombre entier, permettant différents choix d'implémentation en fonction des besoins et 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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn