如何计算十六进制乘法?

时间:2014-10-04 19:01:49

标签: java

如何使Java代码计算十六进制乘法? (长度只有8位。)

例如,我有十六进制ab05,以及F0 * 02 = fb(可能)。

但我不知道为什么答案是fb

你能教我如何用java代码制作这个吗?

1 个答案:

答案 0 :(得分:1)

手动,十六进制是 base-16 ,所以:

    Hex   Decimal
base 16   base 10
      0 =  0
      1 =  1
      2 =  2
       ...
      9 =  9
      A = 10
      B = 11
      C = 12
      D = 13
      E = 14
      F = 15        

所以十六进制值AB((A = 10) * 16) + (B = 11))160 + 11 == 171

在图片中加入“8位”,单个byte(按照惯例, octet )由8位组成。 8位足以表示256个唯一值,而 unsigned 形式表示0-255十进制值,或0x000xFF十六进制值。您可能会注意到这意味着任何8位值都可以用正好两(2)个十六进制数字表示。

在代码中,您可以使用0x前缀以十六进制表示法输入文字。

int answer = 0xF0 * 0x02;
System.out.printf("%x%n", answer);

Formatter(或类似System.out.printf)可以轻松地将结果转换回十六进制。但如果这是作业作业,你的导师就不会喜欢这个答案。