use*_*443 11 java floating-point hex integer converter
我有一个小问题.我有像5421,-1和1这样的数字.我需要以四个字节打印它们,如:
5421 -> 0x0000152D
-1 -> 0xFFFFFFFF
1 -> 0x00000001
Run Code Online (Sandbox Code Playgroud)
另外,我有浮点数,如1.2,58.654:
8.25f -> 0x41040000
8.26 -> 0x410428f6
0.7 -> 0x3f333333
Run Code Online (Sandbox Code Playgroud)
我需要将两种类型的数字转换为十六进制版本,但它们必须正好是四个字节长(四对十六进制数字).
有人知道这在Java中是如何实现的吗?请帮忙.
Hui*_*eng 24
这是两个函数,一个用于整数,一个用于float.
public static String hex(int n) {
// call toUpperCase() if that's required
return String.format("0x%8s", Integer.toHexString(n)).replace(' ', '0');
}
public static String hex(float f) {
// change the float to raw integer bits(according to the OP's requirement)
return hex(Float.floatToRawIntBits(f));
}
Run Code Online (Sandbox Code Playgroud)
小智 8
对于整数,有一种更简单的方法.如果希望十六进制数的alpha部分为大写,则使用大写'X',否则使用'x'表示小写.格式化程序中的"0"表示保持前导零.
public static String hex(int n)
{
return String.format("0x%04X", n);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36537 次 |
最近记录: |