我必须将int转换为十六进制值。这是例如int值:
int_value = -13516;
要转换为十六进制值,请执行以下操作:
hex_value = Integer.toHexString(int_value);
我应该得到的价值是:-34CC
(我不知道我是否应该让它成为正面)。
事情就是以这种方式进行转换,我获得的价值是:ffff cb34
我不能使用此功能进行此转换吗?
答案 0 :(得分:23)
文档说Integer.toHexString
将int
的十六进制表示作为无符号值返回。
我相信Integer.toString(value, 16)
会完成你想要的。
答案 1 :(得分:3)
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
答案 2 :(得分:3)
Integer.toHexString 以及 String.format(“%x”)都不支持标记。要解决此问题,您可以使用三元表达式:
int int_value = -13516;
String hex_value = int_value < 0
? "-" + Integer.toHexString(-int_value)
: Integer.toHexString(int_value);
答案 3 :(得分:3)
String.format("#%06X", (0xFFFFFF & colorYellow));
输出:#FFC107
答案 4 :(得分:1)
通过以下代码将Integer转换为十六进制,将Hex转换为整数转换
public class MainActivity extends Activity {
int number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number = 678668;
Log.i("ACT", "Integer Number " + number);
/**
* Code for convert integer number to hex number. two mwthods.
*/
Log.i("ACT", String.format("#%x", number)); // use lower case x for
// lowercase hex
Log.i("ACT", "#" + Integer.toHexString(number));
/**
* Code for convert hex number to integer number
*/
String hex = Integer.toHexString(number).replace("/^#/", "");
int intValue = Integer.parseInt(hex, 16);
Log.i("ACT", "Integer Number " + intValue);
}
}
答案 5 :(得分:1)
我不认为上面的答案会给你带符号位的确切值。例如,11的值是0B但是-11的值将是F5而不是-B,因为2的补码进入游戏以解决这个问题我修改了上述答案
int int_value = -11;
String hex_value = int_value < 0
? Integer.toHexString(int_value+65536) : Integer.toHexString(int_value);
String shortHexString = hex_value.substring(2);
其中,65536是2 ^ 16,现在您可以获得预期的结果。快乐的编码:)