Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Programm zum Zählen gesetzter Bits in einer Ganzzahl

PHP-Programm zum Zählen gesetzter Bits in einer Ganzzahl

王林
王林Original
2024-08-28 12:07:181019Durchsuche

Was ist Binärcode?

Binärcode ist ein System zur Darstellung von Informationen oder Daten mithilfe eines Zahlensystems zur Basis 2. Zur Darstellung aller Werte werden nur zwei Ziffern verwendet, normalerweise 0 und 1. Jede Ziffer in einem Binärcode wird als Bit (kurz für Binärziffer) bezeichnet.

Im Binärcode stellt jede Ziffer eine Potenz von 2 dar. Ausgehend von der Ziffer ganz rechts nehmen die Potenzen von 2 von rechts nach links zu. In einem 8-Bit-Binärcode stellt beispielsweise das Bit ganz rechts 2^0 (1) dar, das nächste Bit repräsentiert 2^1 (2), das nächste Bit repräsentiert 2^2 (4) und so weiter.

Beispiel

Nehmen wir die Dezimalzahl 42 und stellen sie im Binärcode dar. Um 42 in eine Binärzahl umzuwandeln, teilen wir sie nacheinander durch 2 und behalten die Reste im Auge, bis der Quotient Null wird.

Hier ist der Schritt-für-Schritt-Prozess:

Schritt 1

42 ÷ 2 = 21, Rest 0

Schritt 2

21 ÷ 2 = 10, Rest 1

Schritt 3

10 ÷ 2 = 5, Rest 0

Schritt 4

5 ÷ 2 = 2, Rest 1

Schritt 5

2 ÷ 2 = 1, Rest 0

Schritt 6

1 ÷ 2 = 0, Rest 1

Um die binäre Darstellung zu erhalten, beginnen wir von unten (letzter Rest) und lesen die Reste von unten nach oben.

Der resultierende Binärcode für 42 ist: 101010

Die Dezimalzahl 42 wird im Binärcode also als 101010 dargestellt.

Was ist Setbit?

Im Kontext des Binärcodes bezieht sich ein gesetztes Bit auf eine binäre Ziffer (Bit), die auf den Wert 1 gesetzt ist. Andererseits bezieht sich ein gelöschtes Bit auf eine binäre Ziffer, die auf den Wert 0 gesetzt ist.

Beispiel

Zum Beispiel gibt es im Binärcode 101010 drei gesetzte Bits (entsprechend den Positionen mit dem Wert 1) und drei Löschbits (entsprechend den Positionen mit dem Wert 0).

PHP-Programm zum Zählen gesetzter Bits in einer Ganzzahl

PHP Program to Count set Bits in an Integer

Methode 1: Alle Bits einer Ganzzahl durchlaufen

Beispiel

<?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);
?>

Ausgabe

Number of setbits in 12: 2

Methode 2: Rekursiver Ansatz

<?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);
?>

Ausgabe

Number of setbits in 123 are: 6

Fazit

Zusammenfassend lässt sich sagen, dass wir die gesetzten Bits (1en) in einer Ganzzahl zählen können, indem wir sowohl einen rekursiven Ansatz als auch eine Schleife durch alle Bits in PHP verwenden. Beim Schleifenansatz wird jedes Bit der Ganzzahl mithilfe einer While-Schleife durchlaufen. Wir initialisieren eine Zählervariable und iterieren, bis die Zahl 0 wird. Innerhalb der Schleife verwenden wir bitweises UND mit 1, um das niedrigstwertige Bit zu überprüfen. Wenn es gleich 1 ist, erhöhen wir den Zähler. Dann verschieben wir die Zahl um 1 Bit nach rechts. Dieser Vorgang wird fortgesetzt, bis alle Bits überprüft wurden und der endgültige Zählerstand zurückgegeben wird.

Für den rekursiven Ansatz können wir eine rekursive Funktion definieren, die eine Ganzzahl als Eingabe akzeptiert. Innerhalb der Funktion überprüfen wir das niedrigstwertige Bit mithilfe des bitweisen UND-Operators mit 1. Wenn es gleich 1 ist, erhöhen wir einen Zähler. Dann verschieben wir die Zahl um 1 Bit nach rechts und rufen die Funktion mit der aktualisierten Zahl rekursiv auf. Der Basisfall ist, wenn die Zahl 0 wird und wir an diesem Punkt den Zähler zurückgeben. Dieser Ansatz zählt die gesetzten Bits rekursiv, bis die Zahl 0 wird. Beide Ansätze bieten eine Möglichkeit, die gesetzten Bits in einer Ganzzahl zu zählen, was unterschiedliche Implementierungsoptionen basierend auf den spezifischen Bedürfnissen und Vorlieben des Programmierers ermöglicht.

Das obige ist der detaillierte Inhalt vonPHP-Programm zum Zählen gesetzter Bits in einer Ganzzahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn