Java 整型int到十六进制转换的操作
我知道这很简单,我知道这是问了很多次,但我仍然找不到我要找的东西 我有一个从0到500的值,它是一个整数。 我想要一个从0x00到0xFF的输出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
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(或失去准确性)