如何在java中减去或添加两个十六进制值

如何在java中减去或添加两个十六进制值,java,add,subtraction,hex,Java,Add,Subtraction,Hex,有没有一种方法可以计算两个十六进制值而不将其转换为int? 例如: String sHex = "f7c0"; String bHex = "040000000"; 十六进制值是整数-只是用十六进制而不是十进制表示 你就不能这么做吗 int sHex = 0xf7c0; int bHex = 0x040000000; 如果不是,那么你的意思是: String sHex = "f7c0"; String bHex = "040000000"; 在这种情况下,最快的方法仍然是将它们转换为整数,

有没有一种方法可以计算两个十六进制值而不将其转换为int? 例如:

String sHex = "f7c0";
String bHex = "040000000";

十六进制值是整数-只是用十六进制而不是十进制表示

你就不能这么做吗

int sHex = 0xf7c0;
int bHex = 0x040000000;
如果不是,那么你的意思是:

String sHex = "f7c0";
String bHex = "040000000";
在这种情况下,最快的方法仍然是将它们转换为整数,使用类似
Integer.parseInt(sHex,16)

是的,您可以使用包含十六进制值表示的字符串进行某些(确切地说:任何)计算

一个简单的例子是检查是否相等。为此,将两个字符串转换为小写,去掉所有前导零并应用String.equals方法


其他计算则更为困难。但是,嘿,当我年轻的时候,我们用纸和笔或黑板上的粉笔进行计算,因此原则上,即使所有数据都是字符串形式,也可以计算任何东西。

十六进制值都是整数
-不是这样。这可能是位数组或exocticunicode点或任何东西。仅仅因为
整数可以用十六进制表示法来写。
并不意味着反过来也是正确的。Ingo-同意,但不想让文章更加混乱。说明这一点的更好方法是,任何十六进制值都是一个数值,或者至少可以表示为一个。此外,更长的十六进制值实际上可能需要一个long或BigInteger来表示,例如,我想这样做的原因是:我从套接字读取4字节(字节[4])。有时这个4字节包含0x04000000,有时包含0x08000000。要得到实际值,我需要从0x04000000或0x08000000中减去这4个字节。您想做什么样的计算?为什么不转换为int就需要这样做呢?