2014-10-04 695 views
-1

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

例如我有十六进制ab05F0 * 02 = fb(也许)。我不知道为什么答案是fb

你能教我如何使用java代码?

+2

第1步是学习如何在十六进制和十进制之间进行转换(先手动,然后在代码中)。 – NPE 2014-10-04 19:03:21

+0

8位长度是什么意思?你想只存储8位结果吗? – Alboz 2014-10-04 19:06:07

回答

1

通过手,十六进制是基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(按照约定这些天,八位字节)由8位组成。八位足以表示256个唯一值,并且在中无符号的形式表示值为0-255十进制,或者0x000xFF十六进制。您可能会注意到,这意味着任何8位值都可以由两个(2)十六进制数字表示为

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

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

Formatter(或类似的,像System.out.printf)可以结果转换回十六进制容易不够。但如果这是做家庭作业,你的老师不会喜欢这个答案。

+0

他有一个奇怪的要求“8位长度”...难以应付它。 – Alboz 2014-10-04 19:08:55

+0

@Alboz编辑试图解释一般的关系。我的回答并不是试图解决任何具体的案例。 – 2014-10-04 19:17:24