Heim Java javaLernprogramm Was ist Java Int?

Was ist Java Int?

May 30, 2019 am 09:20 AM

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)

? 100000101

Carry 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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

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. ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

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 ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

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 ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

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 ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

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

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

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 ...

Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Wie kann ich elegant den variablen Entitätsklassennamen erstellen, wenn Tkmybatis für Datenbankabfrage verwendet werden? Apr 19, 2025 pm 09:51 PM

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

E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? Apr 19, 2025 pm 11:27 PM

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 ...

See all articles