unsigned int
-
Irgendwie steh ich gerade auf'm Schlauch. Ich muss folgende C-Zeile in JAVA überführen, hab aber Probleme wegen dem parsen auf unsigned int:
int new_x = (unsigned int)(x - ((4 * scr_x) / z)) % 1000;
Also wie mach ich das? JAVA verfügt ja nicht über unsigned.
-
kannst du nicht einfach den datentyp long verwenden, dieser ist doppelt so gross als int und sollte es doch abdecken können?
-
Es geht nicht um die Größe, sondern darum, dass ich das (binäre) postive Äquivalent der Zahl erhalte. Sprich alle Binärstellen sollen gleich bleiben, aber das höchste Bit soll nicht als Vorzeichen gezählt werden.
-
Eigentlich sollten die vier Byte ja reichen. Überschreitest du diese Grenze, dann nimm long.
Willst du aber tatsächlich eine 4 Byte große positive Zahl in ein int schreiben (um vielleicht Speicherplatz zu sparen), so musst du eine Long-Zahl casten:int a = 0; a = (int)4294967295l; //das letzte ist keine Ziffer sondern ein kleines L
Als Integer lesen kannst du das allerdings nicht, da es ja wegen des ersten Bits als negative Zahl verstanden würde.
Hier hilft dann nur wieder so etwas:long b = a & 0xFFFFFFFFl;
-
Nur nicht zuviel denken, die Frage wurde schon lange beantwortet...