Jeśli chcesz traktować int, jak gdyby był niepodpisany można, aby
int i = ...
String s = String.format("%d", i & 0xFFFFFFFFL);
To skutecznie odwraca podpisanego int na długo, ale to będzie od 0 .. 2^31-1
Aby zrobić odwrotnie można zrobić
int i = (int) Long.parseLong(s);
String s2 = String.format("%d", i & 0xFFFFFFFFL);
I s2
będzie taka sama jak s
pod warunkiem, że znajduje się w zasięgu.
BTW: Najprostszą rzeczą do zrobienia może być przede wszystkim użycie long
. Jeśli nie tworzysz z nich zbyt wiele, to dodatkowa pamięć jest banalna, a kod jest prostszy.
java nie ma liczb całkowitych bez znaku – Kevin
Java 8 ma bez znaku liczby całkowite. – boring
AFAIK Java 8 ma interfejs API dla typowego obejścia tego problemu bez posiadania niepodpisanych typów. –