使用整数int到十六进制转换的操作

时间:2011-11-24 08:47:20

标签: java hex int

我知道很简单,我知道很多次被问过,但我找不到我要找的东西。

我的值为0到500,它是一个int。 我希望输出从0x00到0xFF。

public void method(int i)// 0-500
{
return the_proportional_value_in_hex_in_range_0_to_ff;
}

有人可以用这种方式给我翻转。感谢

修改

我做 NOT 想要一个精确的转换,我只想要一个SCALED转换,@Mac正好回答了我需要的。

2 个答案:

答案 0 :(得分:2)

int scaled = (i * 255) / 500;

i / 500i缩放到范围0 ... 1,然后乘以255(即0xFF),将其缩放到0 ... 255。反之亦然(乘除然后除)只是为了防止除数上的数字下溢。

要以十六进制打印,您可以使用System.out.printf("%x", scaled);。我说打印,因为谈论“十六进制值”并不是非常有用。

答案 1 :(得分:0)

  

我的值为0到500,它是一个int。我想要一个输出   从0x00到0xFF

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