Was ist Java Int?
In Java wird int durch 32 Bit und long durch 64 Bit dargestellt. Diese beiden Grundtypen sind Ganzzahlen und haben keine anderen Darstellungsmethoden. Wie drücken sie sich innerlich aus? Es wird durch den Zweierkomplementcode dargestellt. Da wir bei der Lösung von Problemen häufig auf die Bitoperationen von Java stoßen, können die Bitoperationen von Java nur für int- und long-Typen verwendet werden. Wir haben also Grund zu analysieren, wie Java intern durch Binärdateien dargestellt wird. Hier nehmen wir nur int als Beispiel, long ist dasselbe.
1. Der Bereich von int
int wird in Java intern durch 32 Bits dargestellt, und das höchste Bit stellt das Symbol dar, also die Zahl, die wirklich dargestellt werden kann ist 31 Bit. Der Wertebereich des int-Typs von Java ist -2^31~2^31-1.
Warum ist der Bereich so? Hierbei handelt es sich um die binäre Speichermethode.
In Java wird das Zweierkomplement zum Speichern von int verwendet. Bei einer positiven Zahl ist ihr Komplement sie selbst. Nehmen wir als Beispiel 4 Bit. Für die positiven Zahlen 1–7 sind es jeweils 0001 und 0010. . . , 0111, insgesamt 7 Zahlen, also 2^3-1.
Bei 0 können Sie sehen, dass das Problem kommt. Es kann -0 oder +0 sein, beide sind 0. Entscheiden Sie, wie 0 dargestellt werden soll? Das Gesetz der Komplementcodes besagt, dass 0 als +0 betrachtet wird, sodass 0 durch 0000 dargestellt wird.
Zu diesem Zeitpunkt ist es notwendig, negative Zahlen auszudrücken. Wir glauben, dass die Komplementdarstellung einer negativen Zahl die Umkehrung ihres Absolutwerts (invertiert zusammen mit dem Vorzeichenbit) plus 1 ist. Für -5 ist der Absolutwert beispielsweise 5, was als 0101 ausgedrückt wird. Wenn er invertiert ist, ist er 1010, und plus eins ist 1011. Dies ist die Komplementdarstellung von -5.
Zu diesem Zeitpunkt kann 1000 zur Darstellung von -8 verwendet werden, sodass der Bereich negativer Zahlen -2 ^ 31 beträgt, was auch den Wertebereich von int erklärt. Das Gleiche gilt für 64-Bit-Längen.
2. Javas Bitoperationen
Wie werden Javas Bitoperationen ausgeführt? Denken Sie daran, dass eine Verschiebungsoperation die gesamte Zahl als Ganzes nach links oder rechts verschiebt. Bei einer Verschiebung nach links wird das Low-Bit mit 0 gefüllt. Wenn es nach rechts verschoben wird, gibt es zwei Situationen. Ist es 0 und eine positive Zahl, werden die High-Bits mit 0 aufgefüllt. Handelt es sich um eine negative Zahl, wird das High-Bit mit 1 gefüllt. Beispielsweise ist -5 1011 und eine Verschiebung um eine Position nach rechts ist 1101, also -3.
Es gibt auch eine kleine Bedienung. Wenn es sich um eine bitweise Operation handelt, denken Sie daran, dass auch das Vorzeichenbit beteiligt sein muss!
3. Der Zusammenhang zwischen Rechtsverschiebung und Division
Bei positiven Zahlen (natürlich auch 0) entspricht die Verschiebung um eine Position nach rechts dem Ergebnis der Division durch 2, aber nicht für negative Zahlen (um genau zu sein das Ergebnis einer Division durch 2 -1)! Beispiel: -5/2 ergibt -2 und -5>>1 ergibt -3.
Die Beziehung zwischen positiven und negativen Vorzeichen und ganzzahligen Divisions- und Restoperationen
Positive Zahlen/positive Zahlen, abgerundet
Negative Zahlen/ Negative Zahlen entsprechen der Division ihrer absoluten Werte
Positive Zahlen/negative Zahlen und negative Zahlen/positive Zahlen entsprechen der Division ihrer absoluten Werte multipliziert mit dem negativen Vorzeichen.
Was das Ergebnis von % betrifft, ist der Absolutwert des Ergebnisses derselbe wie der Modul ihres Absolutwerts, aber das Vorzeichen wird durch die erste Zahl bestimmt.
5. Warum müssen wir Komplementcode verwenden?
(1) Wie bereits erwähnt, um +0 und -0 sinnvoll auszudrücken;
(2) Sie können eine weitere negative Zahl als negative Zahl ausdrücken; >
(3) Mit Komplementcode können das Vorzeichenbit und andere Bits gleichzeitig verarbeitet werden, die Subtraktion kann auch als Addition verarbeitet werden. Wenn außerdem zwei im Zweierkomplement ausgedrückte Zahlen addiert werden und im höchsten Bit (Vorzeichenbit) ein Übertrag vorhanden ist, wird der Übertrag verworfen. Tatsächlich besteht ein wichtiger Grund darin, die Berechnung von Addition und Subtraktion zu erleichtern. Bei Verwendung des Zweierkomplementsystems für Operationen können die Vorzeichenbits für die Operation addiert werden. Wenn bei Bitoperationen ein Übertrag im Vorzeichenbit vorhanden ist, kann dieser verworfen werden, da er den Bitbereich überschritten hat. Positive Zahlen und ihre Addition sind nichts Besonderes. Die folgenden Beispiele sind alle 8 Bit. Beispiel: Für 7+7, also 00000111+00000111, ist das Ergebnis 00001110, also 14. Für die Subtraktion, zum Beispiel 9-4, denken wir, dass es 9+(-4) ist. Zuerst invertieren Sie 4, was 00000100 ist, und addieren eins, um das Komplement von -4 zu erhalten, das 11111100 darstellt , und dann hinzufügen, also +00001001(9)+11111100(-4)? 100000101Carry 1 des letzten VorzeichenbitsDa es den Bitbereich überschritten hat, wird es direkt verworfen und 5 kann direkt abgerufen werden. Das ist also die Erkenntnis, dass sich die Subtraktion in die Addition verwandelt.Das obige ist der detaillierte Inhalt vonWas ist Java Int?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...
