Datentypen Überlauf primitiver Datentypen

SHasteCode

Neues Mitglied
Hallo,

warum wird int= 300 byte = 44 und nicht byte = 45 ?
Meine Rechnung: 300-127 = 173
-128 + 173 = 45
Wo wird der eine Byte noch abgezogen ?
 

httpdigest

Top Contributor
int 300 in 32-bit Binärdarstellung = 0b0000_0000_0000_0000_0000_0001_0010_1100
Java macht two's complement narrowing, das heißt wir schauen uns das Vorzeichen von 300 an, was 0 ist. In diesem Fall können wir einfach die überschüssigen Bits von 300 abschneiden und kommen an bei: 0b0010_1100
was dezimal = 44 ist.
Two's complement Darstellung hat auch den Vorteil, dass wir hier allerdings auch immer einfach die Bits abschneiden können.

Siehe: https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3
A narrowing conversion of a signed integer to an integral type T simply discards all but the n lowest order bits, where n is the number of bits used to represent type T. In addition to a possible loss of information about the magnitude of the numeric value, this may cause the sign of the resulting value to differ from the sign of the input value.
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Wenn du das korrekte Ergebnis mittels Arithmetik ausrechnen möchtest (und nicht einfach mit Bit-Abgeschneide), benötigst du die Modulo-Operation zu 256. Also 300 % 256 = 44.
Oder anders ausgedrückt: Dividiere 300 durch 256. Das ergibt ganzzahlig abgerundet 1 und es bleibt ein Rest von 44, weil 256 * 1 + 44 = 300.
Interessanterweise gilt für eine Modulo-Operation n % m, bei der m eine Zweierpotenz ist (was 256 ja ist, weil 2^8 = 256), dass n % m == n & (m - 1), wobei & ein bitweises AND ist. Also in unserem Beispiel mit 300 & 255 = 44.
Oder mit anderen Worten: Durch das bitweise AND werden alle höheren Bits abgeschnitten (bzw. auf null gesetzt).
 

SHasteCode

Neues Mitglied
int 300 in 32-bit Binärdarstellung = 0b0000_0000_0000_0000_0000_0001_0010_1100
Java macht two's complement narrowing, das heißt wir schauen uns das Vorzeichen von 300 an, was 0 ist. In diesem Fall können wir einfach die überschüssigen Bits von 300 abschneiden und kommen an bei: 0b0010_1100
was dezimal = 44 ist.
Two's complement Darstellung hat auch den Vorteil, dass wir hier allerdings auch immer einfach die Bits abschneiden können.

Siehe: https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3

kompliziert erklärt, aber ich habs verstanden. dachte nur, man könnte das auch ganz "einfach", wie mit meiner Methode berechnen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Überlauf Java Basics - Anfänger-Themen 13
B JAVA Datentypen/Überlauf Java Basics - Anfänger-Themen 4
T Überlauf? Java Basics - Anfänger-Themen 9
J Überlauf verhindern Java Basics - Anfänger-Themen 4
J Auf Überlauf prüfen Java Basics - Anfänger-Themen 14
V Überlauf Fakultät Java Basics - Anfänger-Themen 4
O Überlauf durch Multiplikation Java Basics - Anfänger-Themen 7
S Datentypen Sonderbehandlung primitiver Datentypen, fixe Konstanteninterpretation Java Basics - Anfänger-Themen 10
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
F Primitiver Lucas-Lehmer-Test hängt sich auf Java Basics - Anfänger-Themen 7
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
T Unterschiedliche Datentypen - worin abspeichern? Java Basics - Anfänger-Themen 18
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
J Einige Anfängerfragen (Datentypen, Wertebereich) Java Basics - Anfänger-Themen 11
thor_norsk Datentypen unter Java Java Basics - Anfänger-Themen 3
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
Nicolex3 Größere Datentypen Java Basics - Anfänger-Themen 35
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
W Vergleiche bei generischen Datentypen Java Basics - Anfänger-Themen 7
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
L Binären Bäume für beliebige Datentypen Java Basics - Anfänger-Themen 15
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
S Datentypen Java Basics - Anfänger-Themen 14
Antegra Tekkrebell Primitive Datentypen Literal 8072 Java Basics - Anfänger-Themen 21
N Array gleiche Datentypen zusammenrechnen Java Basics - Anfänger-Themen 28
S Datentypen Java Basics - Anfänger-Themen 4
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
H wählen des kleinstmöglichen Datentypen für Gleitkommazahlen. Java Basics - Anfänger-Themen 2
S Datentypen Java Basics - Anfänger-Themen 2
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
J Zusammenhang Numbers und nummerische Datentypen Java Basics - Anfänger-Themen 2
F Variablen unterschiedlicher Datentypen Java Basics - Anfänger-Themen 6
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
D Spezifikation abstrakter Datentypen Java Basics - Anfänger-Themen 3
W Datentypen Datentypen vergleichen Java Basics - Anfänger-Themen 4
I Erste Schritte HILFE bei Datentypen Java Basics - Anfänger-Themen 2
J Wertebereiche und Datentypen Java Basics - Anfänger-Themen 12
N Methode mit 2 Datentypen. Fehler? Java Basics - Anfänger-Themen 1
N Probleme mit Datentypen Java Basics - Anfänger-Themen 6
S Datentypen Unterschied elementare und zusammengesetzte/strukturierte Datentypen Java Basics - Anfänger-Themen 5
L Beliebigen Datentypen aus String parsen Java Basics - Anfänger-Themen 6
M Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen? Java Basics - Anfänger-Themen 8
K new / Datentypen Java Basics - Anfänger-Themen 3
S Datentypen und ihre Größe Java Basics - Anfänger-Themen 21
T Variablen Varargs und beliebige Datentypen Java Basics - Anfänger-Themen 7
G Wertebereiche bei Datentypen Java Basics - Anfänger-Themen 10
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
H Mehrer Datentypen aus einer Methode ausgeben. Java Basics - Anfänger-Themen 25
O Array mit unterschiedlichen Datentypen ausgeben... Java Basics - Anfänger-Themen 16
A Generische Datentypen Java Basics - Anfänger-Themen 8
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
T ArrayList mit verschiedenen Datentypen verhindern Java Basics - Anfänger-Themen 8
N Bedingung für Datentypen Java Basics - Anfänger-Themen 3
R Array aus verschiedenen Datentypen Java Basics - Anfänger-Themen 29
J Datentypen Datentypen Java Basics - Anfänger-Themen 7
S Datentypen Array fill Methode - unterschiedliche Datentypen Java Basics - Anfänger-Themen 6
H null und primitive Datentypen Java Basics - Anfänger-Themen 6
N ArrayList mit eigenem Datentypen Java Basics - Anfänger-Themen 3
B Wie kann ich unterschiedliche Datentypen in einem Feld abbilden? Java Basics - Anfänger-Themen 5
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
M Frage zu Datentypen Java Basics - Anfänger-Themen 4
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
S Nicht Primitive Datentypen Java Basics - Anfänger-Themen 5
C Verwendung von primitiven Datentypen Java Basics - Anfänger-Themen 8
Spin Eigenen Abstrakten Datentypen Java Basics - Anfänger-Themen 28
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
B Wieviele bits belegen die Datentypen? Java Basics - Anfänger-Themen 2
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
C Explizite und implizite Datentypen Java Basics - Anfänger-Themen 12
F primitive Datentypen, String, Klassen Java Basics - Anfänger-Themen 16
Povlsen84 HashSet mit eigenen Datentypen Java Basics - Anfänger-Themen 6
J Verschieden Datentypen in ein "Array" Java Basics - Anfänger-Themen 13
M HashMap mit primitiven Datentypen Java Basics - Anfänger-Themen 10
SebSnake Operatoren für eigene Datentypen Java Basics - Anfänger-Themen 3
G Frage zum Ungang mit Generische Datentypen Java Basics - Anfänger-Themen 4
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
R datentypen konvertierung u modulorechnung Java Basics - Anfänger-Themen 15
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
G Wertebereiche und Datentypen Java Basics - Anfänger-Themen 3
W Datentypen in JAva Java Basics - Anfänger-Themen 2
G verschiedene datentypen in arraylist Java Basics - Anfänger-Themen 14
N Problem mit Tastatureingaben für verschiedene Datentypen Java Basics - Anfänger-Themen 3
I Array für verschiedene Datentypen? Java Basics - Anfänger-Themen 5
E Eigenen datentypen erstellen Java Basics - Anfänger-Themen 14
Y Neuen Datentypen erstellen Java Basics - Anfänger-Themen 12
M int toString Datentypen Umwandeln, AnfängerProblem Java Basics - Anfänger-Themen 3
M Datentypen zu erzeugen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben