alpa021 Geschrieben 5. Januar 2012 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 5. Januar 2012 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 5. Januar 2012 Teilen Geschrieben 5. Januar 2012 Schau Dir den Range des Datentyps an Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
raiserle Geschrieben 6. Januar 2012 Teilen Geschrieben 6. Januar 2012 unsigned int sollte helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
speedi Geschrieben 6. Januar 2012 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.