[JAVA] Einführung in die Bitarithmetik

Einführung in die Bitarithmetik

Bitarithmetik ist die Basis eines Programms, aber um klar zu sein, kann es alles sein, ohne es zu wissen. Wenn Sie es jedoch kennen, können Sie die Auswahl an Programmen erweitern, und es gibt Situationen, in denen es praktisch ist, es tatsächlich zu verwenden. Darüber hinaus kann die Bitarithmetik in vielen Computersprachen verwendet werden. Sobald Sie sie gelernt haben, können Sie sie in verschiedenen Umgebungen verwenden. Für diejenigen, die mit Bitarithmetik nicht vertraut sind, wird in diesem Artikel ein einfaches Beispiel für Bitarithmetik erläutert.

Was ist Bitbetrieb?

Was ist ein bisschen?

Ein Computer ist eine Sammlung von unzähligen EIN / AUS-Schaltern. Dieser Schalter wird als Bit und ein Schalter als 1 Bit bezeichnet. Und dieser Schalter wird als ein Satz von acht betrieben, und diese acht Gruppen werden Bytes genannt, und ein Satz von Gruppen ist ein Byte. Sie haben vielleicht gehört, dass ein Programm eine Sammlung von Nullen und Einsen ist, aber es kommt von hier. Bei der Notation wird es als 00000000 geschrieben und von der rechten Seite als 0. Bit, 1. Bit usw. gezählt.

Was ist Bitbetrieb?

Die Bitarithmetik steuert das EIN / AUS-Schalten unzähliger Schalter. Es ist nur ein Wort von EIN / AUS, aber mehrere Befehle sind für verschiedene Situationen vorbereitet.

Und für die EIN / AUS-Steuerung werden im Grunde genommen Vielfache von 8 gemeinsam ausgeführt. Das heißt, in Bytes. Es gibt verschiedene Typen wie 1-Byte-Variable und 2-Byte-Variable in jeder Sprache, aber alle Bytes dieser Variablen werden gemeinsam ausgegeben.

Operator

Operatoren sind Berechnungssymbole, die bei der Berechnung von + und- verwendet werden. Die Bitoperation ist ein spezielles Berechnungssymbol, das in der Mathematik nicht verwendet wird, und es gibt sechs. Grundsätzlich werden die zurückgegebenen Ergebnisse in der Reihenfolge des 1. Bits und des 2. Bits geprüft und das Ergebnis in das 1. bzw. 2. Bit eingegeben.

&(AND) Vergleicht zwei Schalter und gibt 1 zurück, wenn beide 1 sind, und 0, wenn einer von beiden 0 ist. Es wird verwendet, um zu überprüfen, ob das Flag gesetzt ist, wenn das Flag bitverwaltet ist. Beispiel: c = a & b a 11110000 b 10101010   ↓ c 10100000

|(OR) Vergleicht zwei Schalter und gibt 1 zurück, wenn entweder 1 ist, oder 0, wenn beide 0 sind. Es wird verwendet, um das Flag zu setzen, wenn das Flag durch Bits verwaltet wird. Beispiel: c = a | b a 11110000 b 10101010   ↓ c 11111010

! (NICHT) * Auch im Fall von ~

Kehrt alle EIN / AUS-Zustände des Schalters um und ändert 0 zu 1 und 1 zu 0. Verwenden Sie diese Option, wenn Sie den entgegengesetzten Status festlegen möchten. Beispiel: c =! A. a 11110000   ↓ c 00001111

^(XOR) Vergleicht zwei Schalter und gibt 1 zurück, wenn nur einer 1 ist, 0, wenn beide 1 sind, oder 0, wenn beide 1 sind. Es wird verwendet, wenn Sie herausfinden möchten, was anders ist. Beispiel: c = a ^ b a 11110000 b 10101010   ↓ c 01011010

>> (Rechtsbitverschiebung)

Verschieben Sie den EIN / AUS-Status des Schalters um eins nach rechts. Aufgrund der Verschiebung wird 0 in den freien Frame eingegeben, und der Teil, der die angegebene Anzahl von Ziffern überschreitet, verschwindet. Wenn es hervorsteht, verschwindet es, was als Überlauf bezeichnet wird. Es wird verwendet, wenn Bits mit einer Schleife bearbeitet werden. Anmerkung: c = a >> 1 a 11110000   ↓ c 01111000

<< (Bitverschiebung nach links)

Verschieben Sie den EIN / AUS-Status des Schalters um eins nach links. Mit Ausnahme dieses Teils entspricht dies fast der Verschiebung des rechten Bits. Anmerkung: c = a >> 1 a 11110000   ↓ c 11100000

Zusammenfassung

Das Obige ist die Basis der Bitoperation. Durch die Kombination dieser ist es möglich, rechnerspezifische Berechnungen durchzuführen, die nicht einfach mit + - × ÷ durchgeführt werden können. Wenn Sie es tatsächlich verwenden, ist es Ihnen oft wichtig, wie viele Bytes die Variable enthält, aber es lohnt sich, den Überlauf absichtlich zu verwenden. Die Welt ist begeistert von Bitmünzen, aber denken Sie ab und zu an Bitarithmetik!

Recommended Posts

Einführung in die Bitarithmetik
Einführung in web3j
Einführung in Micronaut 1 ~ Einführung ~
[Java] Einführung in Java
Einführung in die Migration
Einführung in Java
Einführung in Doma
Einführung in JAR-Dateien
Einführung in Ratpack (8) -Session
Einführung in Algorithmen mit Java --Search (Bit Full Search)
Memo zur Beschleunigung der Bitberechnung
Einführung in Ratpack (6) --Promise
Einführung in Ratpack (9) - Thymeleaf
Einführung in PlayFramework 2.7 ① Übersicht
Einführung in das Android-Layout
Einführung in Entwurfsmuster (Einführung)
Einführung in die praktische Programmierung
Einführung in den Befehl javadoc
Einführung in den Befehl jar
Einführung in Ratpack (2) -Architektur
Einführung in den Lambda-Stil
Einführung in den Java-Befehl
Einführung in die Keycloak-Entwicklung
Einführung in den Befehl javac
Einführung in Entwurfsmuster (Builder)
Einführung in die Android App-Entwicklung
Einführung in Ratpack (5) --Json & Registry
Einführung in Metabase ~ Umgebungskonstruktion ~
Einführung in Ratpack (7) - Guice & Spring
(Punktinstallation) Einführung in Java8_Impression
Einführung in Entwurfsmuster (Composite)
Einführung in Micronaut 2 ~ Unit Test ~
Einführung in JUnit (Studiennotiz)
Einführung in Spring Boot ~ ~ DI ~
Einführung in Designmuster (Fliegengewicht)
[Java] Einführung in den Lambda-Ausdruck
Einführung in Spring Boot ② ~ AOP ~
Einführung in Apache Beam (2) ~ ParDo ~
Einführung in die EHRbase 2-REST-API
Einführung in Entwurfsmuster Prototyp
[Java] Einführung in die Stream-API
Einführung in Entwurfsmuster (Iterator)
Einführung in Spring Boot Teil 1
Einführung in Ratpack (1) - Was ist Ratpack?
Einführung in Entwurfsmuster (Strategie)
[Einführung in Janken (ähnliche) Spiele] Java
Einführung in Linux Container / Docker (Teil 1)
Vorgang zum Verbinden mehrerer Streams @Java
Einführung in die schnelle Übungsausgabe Kapitel 5
[Einführung in Java] Über Lambda-Ausdrücke
[Einführung in Java] Informationen zur Stream-API