我必须将int转换成十六进制值。例如,这是int值:
int_value = -13516;要转换为十六进制值,我需要:
hex_value = Integer.toHexString(int_value);我应该得到的值是:-34CC (我不知道是否应该让它成为正数)。
事情是这样进行转换的,我得到的值是:ffff cb34
我不能用这个函数来进行这个转换吗?
发布于 2013-08-06 10:56:18
文档指出,Integer.toHexString将int的十六进制表示形式作为无符号值返回。
我相信Integer.toString(value, 16)会完成你想要的。
发布于 2013-08-06 10:56:08
public static int convert(int n) {
return Integer.valueOf(String.valueOf(n), 16);
}
// in onstart:
Log.v("TAG", convert(20) + ""); // 32
Log.v("TAG", convert(54) + ""); // 84发布于 2013-08-06 11:05:22
Integer.toHexString,和String.format("%x")都不支持符号。要解决这个问题,可以使用三元表达式:
int int_value = -13516;
String hex_value = int_value < 0
? "-" + Integer.toHexString(-int_value)
: Integer.toHexString(int_value);https://stackoverflow.com/questions/18078159
复制相似问题