Heim  >  Artikel  >  Java  >  Welche Techniken gibt es für Java-Bit-Operationen?

Welche Techniken gibt es für Java-Bit-Operationen?

PHPz
PHPznach vorne
2023-04-29 10:34:061545Durchsuche

Was ist eine Bitoperation? Bei der Datenmethode auf Binärebene verarbeitet die Bitoperation direkt Binärdaten, die aus 0 und 1 bestehen.

Grundlegende Bitoperationen

Es gibt sechs grundlegende Bitoperationen, nämlich** AND oder NOT XOR Linksverschiebung Rechtsverschiebung* *#🎜🎜 #

SymbolBeschreibung und Wenn beide Bits 1 sind, ist das Ergebnis 1# 🎜🎜##🎜🎜 ##🎜 🎜##🎜 🎜#^XORWenn die beiden Bits gleich sind, ist das Ergebnis 1, wenn sie nicht gleich sind, ist das Ergebnis 0~reverse0 ändert sich zu 1, 1 ändert sich zu 0
Bedienungsregeln # 🎜🎜## 🎜🎜# &
oder Wenn beide Bits 0 sind, ist das Ergebnis 0
#🎜 🎜#
# 🎜🎜#
  • ** Zunächst muss klar sein, dass Bitoperationen nur auf Ganzzahlen angewendet werden können**

  • In jdk , Java Right Die Verschiebung ist eine arithmetische Rechtsverschiebungsoperation

  • ** Die Priorität von Bitoperationen ist sehr niedrig, daher ist es am besten, Klammern zu verwenden **#🎜🎜 #

    #🎜 🎜#

Welche Techniken gibt es für Java-Bit-Operationen?Die Ausgabe des obigen Codes:


#🎜 🎜#

Nachfolgend analysieren wir, warum dieses Ergebnis ausgegeben wird: Welche Techniken gibt es für Java-Bit-Operationen?

Zuerst schreiben wir für 13 seine Binärdatei: 0000 1101
    #🎜 🎜#
  • Um zwei Bits nach rechts verschieben: 0000 0011. Da die Rechtsverschiebung in JDK eine arithmetische Rechtsverschiebung ist, wird das hohe Bit mit 00 gefüllt und das Ergebnis ist 3

    #🎜 🎜#
  • für -13, Binärcode: 1111 0011

  • Verschiebung um zwei Bits nach rechts, höherwertiges Komplementvorzeichenbit, 1111 1100 , das Ergebnis ist -4

    #🎜🎜 #
  • Gemeinsame Bitoperationen

    Tipps

Bitoperationen werden häufig für einige kleine Operationen verwendet, da sie nur plastische Zahlen verarbeiten können, sodass ihre Einsatzmöglichkeiten begrenzt sind. Es lohnt sich jedoch, einige häufig verwendete Tipps zu beherrschen, z. B. die Beurteilung von geraden und ungeraden Zahlen, den Austausch zweier Zahlen, den Austausch von Vorzeichen und das Ermitteln absoluter Werte , usw. Wir werden sie im Folgenden einzeln vorstellen. #? Ende ist 0, es ist eine gerade Zahl. Wenn die letzte Ziffer 1 ist, ist es eine ungerade Zahl. Der Weg zur Bestimmung der Parität ist also:

Ein kleines Testprogramm:

# 🎜🎜#Das obige Programm gibt alle geraden Zahlen innerhalb von 1000 aus.

Austausch von zwei Zahlen

Welche Techniken gibt es für Java-Bit-Operationen?Die Vorteile der Verwendung von Bitoperationen zum Austausch von zwei Zahlen Die dritte temporäre Variable ist nicht erforderlich (die Einschränkung besteht darin, dass nur Ganzzahlvariablen ausgetauscht werden können)

Welche Techniken gibt es für Java-Bit-Operationen?Analysieren Sie, wie der Austausch erfolgt: #🎜🎜 #Zuerst bedeutet a ^=b a=(a^b);

b^=a bedeutet b=b

(a

b). Da die

-Operation das Kommutativgesetz erfüllt, b( ab)=b

b^a. Eine Zahl, die mit sich selbst XOR-verknüpft wird, muss 0 sein, denn wenn eine Zahl mit 0 XOR-verknüpft wird, sind 1 und 0 immer noch 1, und 0 und 0 sind immer noch 0, also offensichtlich eine Zahl und 0 Nach XOR ist es natürlich immer noch es selbst. Zu diesem Zeitpunkt wird b also der Wert a zugewiesen.

Der letzte Schritt, a^=b ist a=a

b, da die beiden vorherigen Schritte zeigen, dass a=(a

b), b=a, also a=aWelche Techniken gibt es für Java-Bit-Operationen?b ist a= (a

b)^a. Daher wird a der Wert von b zugewiesen.



Konvertieren Sie das SymbolDie Konvertierung des Symbols ist offensichtlich sehr einfach. Nehmen Sie gemäß dem ähnlichen Komplementcode einfach die Umkehrung und fügen Sie eins hinzu.
Finden des Absolutwerts

Das Finden des Absolutwerts erfolgt auf der Grundlage von Vorzeichen ändern Ja, wir müssen zunächst nur feststellen, ob es sich um eine negative Zahl handelt. Wenn nicht, geben Sie sie einfach zurück.

Um das Positive oder Negative zu bestimmen, können Sie das Vorzeichenbit direkt bestimmen, 31 Bits nach rechts verschieben, das Vorzeichenbit erhalten und das Positive oder Negative bestimmen

# 🎜🎜#

Für jede Zahl bleibt XOR mit 0 unverändert, XOR mit -1, also 0xFFFFFFFF, entspricht einer Negation. Daher kann der Absolutwert auch durch XOR-Verknüpfung von a mit i und anschließendes Subtrahieren von i erhalten werden (da i 0 oder -1 ist, bedeutet das Subtrahieren von i also entweder das Addieren von 0 oder das Addieren von 1). So können Sie den obigen Code optimieren:

Welche Techniken gibt es für Java-Bit-Operationen?

Anwendung von Bitoperationen

#🎜 🎜#Häufige Algorithmusfragen. Bitoperationen zur Implementierung von A+B-Operationen sind häufige Algorithmusfragen.

Welche Techniken gibt es für Java-Bit-Operationen?

Der obige Code realisiert die Addition zweier Zahlen mithilfe von Bitoperationen ohne Verwendung des +-Operators.

Lassen Sie uns nun das Prinzip der Bitoperation erklären, um die Addition zweier Zahlen zu implementieren.
Zunächst wissen wir im Dezimalformat, dass 7+8 ohne Übertrag die Summe 5 und der Übertrag 1 beträgt , und dann können wir es entsprechend der Nichtübertragssumme verwenden. Die Summe und der Übertrag sind 5+1*10, um das Endergebnis von 15 zu berechnen.

Diese Methode kann auch für ähnliche Binärsysteme übernommen werden

Zum Beispiel Welche Techniken gibt es für Java-Bit-Operationen?a = 3, b = 6

a : 0011

b : 0110#🎜🎜 #Keine Übertragssumme: 0101 Das ist 5 Übertrag: 0010 Das ist 2 Also wird a+b zu 5 + (25  0101

2Übertrag           0100   = 4

Also wird a + b zu 1 + 4 Dann gibt es

1 0001# 🎜🎜#4Kein Übertrag und 1001 = 9
Übertrag 0000 = 0
Wenn der Übertrag 0 ist, ist die Summe ohne Übertrag 9, was die Summe ist von a + b.

Sie können feststellen, dass es sich bei dem oben genannten Prozess um einen rekursiven Prozess handelt, sodass das Schreiben des Codes nicht schwierig ist. Um die übertragsfreie Summe zweier Zahlen zu ermitteln, müssen die beiden Zahlen tatsächlich XOR-verknüpft werden.

Das obige ist der detaillierte Inhalt vonWelche Techniken gibt es für Java-Bit-Operationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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