在
因此,如果我有一个较大的无符号整数,那么使用
printf()
中,我记得对于无符号整数需要使用 %u
... 但是我在 String.format()
的规范中找不到这样的格式化符号。因此,如果我有一个较大的无符号整数,那么使用
%d
将能正确工作吗?printf()
中,我记得对于无符号整数需要使用 %u
... 但是我在 String.format()
的规范中找不到这样的格式化符号。%d
将能正确工作吗?如果你想把 int 当作无符号数来处理,你可以这样做:
int i = ...
String s = String.format("%d", i & 0xFFFFFFFFL);
这实际上将有符号整数转换为长整型,但它的范围是从0到2^31-1。
要进行相反操作,您可以执行
int i = (int) Long.parseLong(s);
String s2 = String.format("%d", i & 0xFFFFFFFFL);
如果s2
在范围内,那么s2
将与s
相同。
顺便说一下:最简单的方法可能是一开始就使用long
。除非您正在创建大量这些,否则额外的内存微不足道,代码也更简单。