如何在c#.net中添加两个Hex字符串

时间:2010-12-16 05:26:50

标签: c#

如何在C#.net

中添加两个Hexa字符串

string hex1 =“BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”;

string hex2 =“BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”;

我希望通过添加这两个hexa值来获得十进制值。

2 个答案:

答案 0 :(得分:3)

int value = Convert.ToInt32(hexString1, 16) + Convert.ToInt32(hexString2, 16);

答案 1 :(得分:3)

根据字符串的长度(32个字符),您的数字将不适合decimal,更不用说longint。对此的解决方案是使用.Net 4 BigInteger数据类型。我不能在这里测试,但代码看起来像这样

BigInteger num1 = BigInteger.Parse("0" + hex1, NumberStyles.HexNumber);
BigInteger num2 = BigInteger.Parse("0" + hex2, NumberStyles.HexNumber);
BigInteger result = num1 + num2;

如果您不在.Net 4上,则必须使用可以存储此数量的数据的数据类型,例如double。由于double只有8个字节,因此结果会失去一些精度。

修改

我现在测试了它。事实证明,您必须设置对System.Numerics.dll的引用,并为命名空间using添加System.Numerics语句。此外,如果数字是正数,则必须在字符串前加上“0”,以防止它们被解析为负数。