Long Typ

jdeus

Mitglied
hallo, ich verstehe nicht die operation, bzw. was genau wird in der if-bedinung gemacht : x==(long)(byte)x
ich vermute, dass es darum geht, dass eine zahl übergeben wird und da man nicht weiß, wie groß sie ist , speichert man sie in dem typ long, da es bestimmt vom speicherplatz genug wird. aber der ausdruck, in dem man zwei typen in klammen hintereinander schreibt ist mir nicht verständlich : kann es sein, dass es somit gefragt wird : wenn die übergebene zahl die in long passt ( die erste klammer (long) ) in einen byte passt (die zweite klammer (byte) ) dann tue etwas?


Java:
char überprüfe(long x)
{
    if (x == (long) (byte) x)
    {
        // ... tue etwas
        
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
Ein Ausdruck der Form (typ) c castet die Variable auf den gegebenen Typ.

(byte) x ist ein Cast von long auf byte, (long) (byte) x als ganzes ein Cast von x auf byte und danach von dem Ergebnis auf long.

Reicht das schon als Hilfe? =)
 

LimDul

Top Contributor
Das sind Casts. Wenn man das mal aufsplittet, sieht der Code wie folgt aus:

Java:
byte tempByte = (byte)x;
long tempLong = (long)tempByte;
if (x==tempLong) {
...
}

Sprich, man wandelt den long-wert zuerst in ein Byte um. Dabei geht evtl. Informationen verloren, wenn der Wert im long größer ist, als in ein Byte passt.
Danach wandelt man den Wert wieder ein ein long zurück und überprüft, ob es der gleiche Wert ist.

Man muss das von Rechts nach Links lesen :)
 

mihe7

Top Contributor
wenn die übergebene zahl die in long passt ( die erste klammer (long) ) in einen byte passt (die zweite klammer (byte) ) dann tue etwas?
Fast (was aber mit einer Eigenart von byte zu tun hat), wobei der erste Cast (long) in jedem Fall überflüssig ist.

Mit einem type cast (Typumwandlung) wird der Compiler angewiesen, einen "Wert" als Wert eines angegebenen Typs zu behandeln. Dabei können Informationen verloren gehen.

Zum Beispiel:
Java:
long x = 300L; // x ist vom Typ long
System.out.println(x); 
System.out.println((byte) x);
Ausgabe:
Code:
300
44
Die 300 ist dabei wenig überraschend, die 44 bedarf nun aber einer Erklärung.

300 ist nicht mit einem einzigen Byte darstellbar, es werden zwei benötigt. Das höherwertige Byte hat den Wert 1, das niederwertige den Wert 44, denn 1*256+44 = 300. Die restlichen 6 Bytes des long-Werts sind alle 0.

Mit (byte) x wird nun gesagt: Compiler, behandle das long wie ein einzelnes Byte. Dabei wird das niederwertige Byte verwendet und das ist 44.

Mit einem weiteren Cast auf long wird nun die 44 wieder in ein long gewandelt: 44L == (long) 44. Dieser Cast ist in dem Fall überflüssig, weil er von Java automatisch durchgeführt werden würde.

An einer Stelle heißt es allerdings aufpassen: byte ist vorzeichenbehaftet.

Java:
long x = 200L; // x ist vom Typ long
System.out.println(x); 
System.out.println((byte) x);
Ausgabe:
Code:
200
-56
Daher stimmt Deine Aussage oben nicht zu 100 % :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
krgewb Long wird gerundet Java Basics - Anfänger-Themen 2
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
javapingu Hex String zu long Java Basics - Anfänger-Themen 2
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
O Long[] in long Java Basics - Anfänger-Themen 3
D Compiler-Fehler Java long und int Java Basics - Anfänger-Themen 1
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
Hanschyo String kann nicht Werte von Long annehmen Java Basics - Anfänger-Themen 2
Orkanson Long Binär darstellen Java Basics - Anfänger-Themen 1
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
J Datentypen Literal überschreitet long-Range, dennoch als long an Variable übergeben Java Basics - Anfänger-Themen 9
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
M Frage Long Wert in Java Java Basics - Anfänger-Themen 1
A Long in BigInteger Java Basics - Anfänger-Themen 3
T long wird ohne Nachkommastellen ausgegeben Java Basics - Anfänger-Themen 5
G Long und Frage zum Speicherplatz eines Arrays Java Basics - Anfänger-Themen 7
S OOP long prüfen Java Basics - Anfänger-Themen 5
B map.remove(long) Java Basics - Anfänger-Themen 5
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Zufälliger Long Java Basics - Anfänger-Themen 15
SheldoN Zahlen die über long-Wert hinausragen Java Basics - Anfänger-Themen 4
H TreeMap<> statt TreeMap<Long, String> Java Basics - Anfänger-Themen 2
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
G Long oder int Vorzeichen entfernen Java Basics - Anfänger-Themen 3
M Datentypen Calender TimeInMillis - long number erzeugen? Java Basics - Anfänger-Themen 2
D Konvertierung UnsignedInt zu long Java Basics - Anfänger-Themen 5
A long Wert in hexadezimales Array umwandeln Java Basics - Anfänger-Themen 3
A string bitweise in long umwandeln Java Basics - Anfänger-Themen 7
A Konvertierung String-->hex-->long Java Basics - Anfänger-Themen 7
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Datentypen Ein long[]-Array. Java Basics - Anfänger-Themen 5
G Datentypen Eclipse akzeptiert 'long' nicht Java Basics - Anfänger-Themen 2
N Mit long rechnen Java Basics - Anfänger-Themen 2
W Long to String Java Basics - Anfänger-Themen 7
B Long als Eingabeaufforderung Java Basics - Anfänger-Themen 3
H Long (64Bit) in 2 int (32Bit) zerlegen Java Basics - Anfänger-Themen 2
S Long und Float Frage Java Basics - Anfänger-Themen 2
N Datentypen Wurzel aus long ziehen Java Basics - Anfänger-Themen 4
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
A mdoulo methode mit long Java Basics - Anfänger-Themen 9
Binary.Coder Skalarprodukt mittels long und binärzahlen Java Basics - Anfänger-Themen 5
A Long zu Double Java Basics - Anfänger-Themen 4
B (long)1e9 Java Basics - Anfänger-Themen 6
V wozu ist das 'L' beim long notwendig ? Java Basics - Anfänger-Themen 5
J Länge eines long wertes Java Basics - Anfänger-Themen 13
S Division von long! Java Basics - Anfänger-Themen 4
Spot84 long von getCreationDate in String umwandeln Java Basics - Anfänger-Themen 4
S Probleme beim Umwandeln von Long nach Int Java Basics - Anfänger-Themen 4
G long[] aus SQL-Abfrage Java Basics - Anfänger-Themen 3
G String in Long casten Java Basics - Anfänger-Themen 2
N long geteilt durch long gleich null ? Java Basics - Anfänger-Themen 8
G int gleich long ? Java Basics - Anfänger-Themen 2
J A Long. way Java Basics - Anfänger-Themen 10
T Probleme mit long Java Basics - Anfänger-Themen 2
G NumberFormatException bei double und long Java Basics - Anfänger-Themen 11
G long zu kurz Java Basics - Anfänger-Themen 5
G long datum splitten in day etc Java Basics - Anfänger-Themen 23
G Konvertierung String in long type Java Basics - Anfänger-Themen 15
G Zahlen >long verwenden Java Basics - Anfänger-Themen 7
G Problem beim rechenen mit long Java Basics - Anfänger-Themen 3
G long oder double Java Basics - Anfänger-Themen 15
C Long -> String -> ArrayList adden -> Exception Java Basics - Anfänger-Themen 4
M long in byte[] konvertieren und wieder zurück Java Basics - Anfänger-Themen 2
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
M Quersumme einer long zahl Java Basics - Anfänger-Themen 4
M long Datentyp effizient mit Daten füllen Java Basics - Anfänger-Themen 2
F Long umwandeln und auf 2 Dezimalen runden? Java Basics - Anfänger-Themen 14
G long in string Java Basics - Anfänger-Themen 6
G long-Zeitwert Java Basics - Anfänger-Themen 11
P "Line too long" bei der Generierung des jars. Java Basics - Anfänger-Themen 5
B String <> long --- Das ist doch nicht inkonvertibel? Java Basics - Anfänger-Themen 4
F Long zu 2 int und zurück Java Basics - Anfänger-Themen 3
G Hexadezimalzahl von String in Long umwandeln Java Basics - Anfänger-Themen 3
P von long zu int umwandeln? Java Basics - Anfänger-Themen 3
A formatieren long(bytes) -> String Java Basics - Anfänger-Themen 2
T long in Vector speichern Java Basics - Anfänger-Themen 16
G "cannot convert from long to int" - problem Java Basics - Anfänger-Themen 9
G Vergleich zweier 'long'-Werte. Problem! Java Basics - Anfänger-Themen 6
M long nach String casten Java Basics - Anfänger-Themen 2
N x.toString(x); umwandlung von long in String Java Basics - Anfänger-Themen 3
P Wie mach ich aus Int ein Double oder Long ? Java Basics - Anfänger-Themen 6
N unsigned int to long Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben