在printf()
我记得因为未签名而有%u
...但我在%u
String.format()
所以如果我有一个很大的unsigned
int,那么%d
会正常运行吗?
答案 0 :(得分:10)
如果你想将int视为无符号,你可以
int i = ...
String s = String.format("%d", i & 0xFFFFFFFFL);
这有效地将signed int转换为long,但它将从0 ... 2 ^ 31-1
要做反向,你可以做
int i = (int) Long.parseLong(s);
String s2 = String.format("%d", i & 0xFFFFFFFFL);
如果s2
在范围内,s
将与long
相同。