alpa021 Geschrieben 5. Januar 2012 Geschrieben 5. Januar 2012 hi ich habe folgende methode. public static int IP(int a, int b, int c, int d) { return ((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | (d & 0xFF); } die soll mir ein eine IP addresse in ein Integer umwandeln. Wenn ich nun zum beispiel: 210.94.10.1 eingeben will, dann müsste ja eigentlich als integer 3529378305 rauskommen. Komischerweisse kommt bei mir sowas -765588991 raus? Versteh ich nicht so ganz. Kann mir da einer weiterhelfen? Zitieren
Guybrush Threepwood Geschrieben 5. Januar 2012 Geschrieben 5. Januar 2012 Da findet ein Werteüberlauf statt da der Maximale Wert für einen 32Bit int 2.147.483.647 ist. Zitieren
flashpixx Geschrieben 5. Januar 2012 Geschrieben 5. Januar 2012 Schau Dir den Range des Datentyps an Zitieren
speedi Geschrieben 6. Januar 2012 Geschrieben 6. Januar 2012 unsigned int sollte helfen Seit wann gibt's das denn bei Java? Ansonsten: einfach Long nehmen. Und beim ausrechnen das casten nicht vergessen, sonst wird das Ergebnis zwar ein Long, die Rechnung bleibt aber int. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.