Java 整型int到十六进制转换的操作

Java 整型int到十六进制转换的操作,java,hex,int,Java,Hex,Int,我知道这很简单,我知道这是问了很多次,但我仍然找不到我要找的东西 我有一个从0到500的值,它是一个整数。 我想要一个从0x00到0xFF的输出 public void method(int i)// 0-500 { return the_proportional_value_in_hex_in_range_0_to_ff; } 有人能给我写一个这种转换器吗。谢谢 编辑 我确实不想要精确的转换,我只是想要一个缩放转换,@Mac正好回答了我的需要。int SCALED=(I*255)/500 i

我知道这很简单,我知道这是问了很多次,但我仍然找不到我要找的东西

我有一个从0到500的值,它是一个整数。 我想要一个从0x00到0xFF的输出

public void method(int i)// 0-500
{
return the_proportional_value_in_hex_in_range_0_to_ff;
}
有人能给我写一个这种转换器吗。谢谢

编辑

我确实不想要精确的转换,我只是想要一个缩放转换,@Mac正好回答了我的需要。

int SCALED=(I*255)/500

i/500
i
缩放到范围
0。。。1
,然后乘以255(即
0xFF
)将其缩放为
0。。。255
。用另一种方法(先乘后除)只是为了防止在除法中出现数值下溢

要以十六进制打印,可以使用
System.out.printf(“%x”,缩放)。我说打印,因为谈论“十六进制值”并没有太大用处

我有一个从0到500的值,它是一个整数。我想要一个输出 从0x00到0xFF


运气不好,这是不可能的。你需要9个比特。500=0x1F4。

首先不能在void方法中返回值,然后值不存储为十六进制或数字,它们都存储为二进制数,因此可能需要将其转换为字符串。请更新您的问题我不想要精确转换,我想要缩放您知道0xFF只有256,您需要另一位才能达到500(或失去准确性)