476. Zahlenkomplement
Schwierigkeit:Einfach
Themen:Bit-Manipulation
Das Komplement einer Ganzzahl ist die Ganzzahl, die Sie erhalten, wenn Sie in der Binärdarstellung alle Nullen in Einsen und alle Einsen in Nullen umdrehen.
- Zum Beispiel ist die Ganzzahl 5 binär „101“ und ihr Komplement ist „010“, also die Ganzzahl 2.
Geben Sie bei einer gegebenen Ganzzahl ihr Komplement zurück.
Beispiel 1:
-
Eingabe: num = 5
-
Ausgabe: 2
-
Erklärung: Die binäre Darstellung von 5 ist 101 (keine führenden Nullbits) und ihr Komplement ist 010. Sie müssen also 2 ausgeben.
Beispiel 2:
-
Eingabe: num = 1
-
Ausgabe: 0
-
Erklärung: Die binäre Darstellung von 1 ist 1 (keine führenden Nullbits) und ihr Komplement ist 0. Sie müssen also 0 ausgeben.
Einschränkungen:
Hinweis: Diese Frage ist dieselbe wie 1009. Komplement der ganzen Zahl zur Basis 10
Lösung:
Wir müssen die Bits der binären Darstellung einer bestimmten Ganzzahl umdrehen und die resultierende Ganzzahl zurückgeben.
Schritte zur Lösung des Problems:
- Konvertieren Sie die Zahl in ihre binäre Darstellung.
-
Drehen Sie die Bits um (d. h. ändern Sie 0 in 1 und 1 in 0).
-
Konvertieren Sie die umgedrehte Binärzeichenfolge zurück in eine Ganzzahl.
Lassen Sie uns diese Lösung in PHP implementieren: 476. Zahlenkomplement
Erläuterung:
-
decbin($num): Konvertiert die angegebene Ganzzahl in ihre binäre Zeichenfolgendarstellung.
-
Bits umdrehen: Wir durchlaufen die Binärzeichenfolge und drehen jedes Bit um, indem wir prüfen, ob es eine 1 oder eine 0 ist.
-
bindec($flipped): Konvertiert die umgedrehte Binärzeichenfolge zurück in eine Ganzzahl.
Beispielläufe:
-
Eingabe: 5
- Binäre Darstellung: „101“
- Umgedrehte Binärdatei: „010“
- Ausgabe: 2
-
Eingabe: 1
- Binäre Darstellung: „1“
- Umgedrehte Binärdatei: „0“
- Ausgabe: 0
Diese Lösung berechnet das Komplement effizient, indem sie die Bits der binären Darstellung der gegebenen Zahl umdreht.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt von. Zahlenkomplement. 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