Heim > Backend-Entwicklung > C++ > C/C++-Programm: Die Anzahl der in einer Ganzzahl festgelegten Ziffern zählen?

C/C++-Programm: Die Anzahl der in einer Ganzzahl festgelegten Ziffern zählen?

王林
Freigeben: 2023-08-26 18:57:12
nach vorne
1260 Leute haben es durchsucht

C/C++-Programm: Die Anzahl der in einer Ganzzahl festgelegten Ziffern zählen?

Das Zählen gesetzter Bits bedeutet das Zählen von Einsen für eine bestimmte ganze Zahl. Hierfür haben wir mehrere Lösungen, die angewendet werden können. In diesem Fall haben wir eine Binärzahl (binäre Darstellung einer ganzen Zahl), für die wir die Anzahl der Einsen in der Zeichenfolge zählen müssen.

Um die Anzahl der Einsen zu zählen, erhalten wir die Zeichenfolge, durchlaufen jedes Element und zählen die Anzahl aller Einsen in der Zeichenfolge. Wenn wir beispielsweise 17 eingeben, ist die Ausgabe 2, da die binäre Darstellung von 17 10001 ist, was zwei Einsen enthält.

Input: Enter a positive integer: 6
Output: 2
Nach dem Login kopieren

Erklärung

Die binäre Darstellung von 6 ist 110 mit 2 gesetzten Bits

Diese Iterationsmethode erfordert eine Iteration für jedes Bit. Es durchläuft alle Ziffern der Zahl. Die Iteration endet, wenn keine weiteren Bits gesetzt sind. Im schlimmsten Fall erfolgt eine Schleife für 32 Iterationen für ein 32-Bit-Wort, wobei nur das höchstwertige Bit gesetzt ist. Diese Lösung ist die einfachste Lösung und nützlich, wenn die Einsen spärlich vorhanden sind und sich in den niedrigstwertigen Bits befinden.

Beispiel

#include <stdio.h>
int main(void) {
   unsigned int n = 34;
   for (c = 0; n; n >>= 1) {
      c += n & 1;
   }
   printf("%d\n", c);
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC/C++-Programm: Die Anzahl der in einer Ganzzahl festgelegten Ziffern zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage