在printf()
我记得未签名的情况下......但我在规格中%u
找不到这样的%u
String.format()
所以如果我有一个大的unsigned
int 那么%d
它会正常工作吗?
在printf()
我记得未签名的情况下......但我在规格中%u
找不到这样的%u
String.format()
所以如果我有一个大的unsigned
int 那么%d
它会正常工作吗?
如果您想将 int 视为未签名的,您可以
int i = ...
String s = String.format("%d", i & 0xFFFFFFFFL);
这有效地将带符号的 int 转换为 long,但它将从 0 .. 2^31-1
做相反的事情,你可以做
int i = (int) Long.parseLong(s);
String s2 = String.format("%d", i & 0xFFFFFFFFL);
并且s2
将与s
在范围内的情况相同。
顺便说一句:最简单的事情可能是首先使用 a long
。除非你创建了很多这样的额外内存是微不足道的,代码更简单。