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

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

PHPz
PHPznach vorne
2023-08-22 11:41:13831Durchsuche

Was ist Binärcode?

Binärcode ist ein System, das ein binäres Zahlensystem zur Darstellung von Informationen oder Daten verwendet. Es verwendet nur zwei Zahlen, normalerweise 0 und 1, um alle Werte darzustellen. Jede Zahl im Binärcode wird als Bit (kurz für Binary Digit) bezeichnet.

Im Binärcode stellt jede Zahl eine Zweierpotenz dar. Beginnend mit der Zahl ganz rechts erhöhen sich die Zweierpotenzen von rechts nach links. 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

Lassen Sie uns die Dezimalzahl 42 in Binärcode umwandeln. Um 42 in eine Binärzahl umzuwandeln, dividieren wir kontinuierlich durch 2 und behalten den Rest im Auge, bis der Quotient Null wird

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

Erster Schritt

42 ÷ 2 = 21, der Rest ist 0

Schritt 2

21 ÷ 2 = 10, der Rest ist 1

Schritt 3

10 ÷ 2 = 5, Rest ist 0

Schritt 4

5 ÷ 2 = 2, der Rest ist 1

Schritt 5

2 ÷ 2 = 1, der Rest ist 0

Schritt 6

1 ÷ 2 = 0, Rest ist 1

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

Der Binärcode für 42 ist: 101010

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

Was ist Setbit?

Im Zusammenhang mit Binärcode bezieht sich ein gesetztes Bit auf eine Binärzahl (Bit), die auf 1 gesetzt ist. Klare Bits hingegen beziehen sich auf binäre Ziffern (Bits), die auf 0 gesetzt sind

Beispiel

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

PHP-Programm: Zählen Sie die Anzahl der gesetzten Bits in einer Ganzzahl

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

Methode 1: Alle Bits der 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: Rekursive Methode

<?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 Anzahl der gesetzten Bits (1) in einer Ganzzahl zählen können, indem wir einen rekursiven Ansatz verwenden und alle Bits in einer Schleife durchlaufen. Bei der Schleifenmethode wird eine While-Schleife verwendet, um jedes Bit der Ganzzahl zu durchlaufen. Wir initialisieren eine Zählervariable und iterieren, bis die Zahl 0 erreicht. Innerhalb der Schleife führen wir ein bitweises UND mit 1 durch und verwenden dabei den bitweisen UND-Operator, um das niedrigstwertige Bit zu prüfen. Wenn es gleich 1 ist, erhöhen wir den Zähler. Dann verschieben wir die Nummer 1 nach rechts. Dieser Vorgang wird fortgesetzt, bis alle Bits überprüft wurden und der endgültige Zählerstand zurückgegeben wird

Für rekursive Methoden können wir eine rekursive Funktion definieren, die eine Ganzzahl als Eingabe akzeptiert. Innerhalb der Funktion verwenden wir den bitweisen UND-Operator und 1, um das niedrigstwertige Bit zu überprüfen. Wenn es gleich 1 ist, erhöhen wir einen Zähler. Anschließend verschieben wir die Zahl um eine Stelle nach rechts und rufen die Funktion rekursiv mit der aktualisierten Zahl auf. Der Grundfall ist, dass wir den Wert des Zählers zurückgeben, wenn die Zahl 0 erreicht. Diese Methode berechnet rekursiv die gesetzten Bits, bis die Zahl 0 wird. Beide Methoden bieten eine Möglichkeit, gesetzte Bits in einer Ganzzahl zu zählen, wobei je nach den spezifischen Anforderungen und Vorlieben des Programmierers unterschiedliche Implementierungsoptionen zur Verfügung stehen.

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen