如何在C#.net
中添加两个Hexa字符串string hex1 =“BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”;
string hex2 =“BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”;
我希望通过添加这两个hexa值来获得十进制值。
答案 0 :(得分:3)
int value = Convert.ToInt32(hexString1, 16) + Convert.ToInt32(hexString2, 16);
答案 1 :(得分:3)
根据字符串的长度(32个字符),您的数字将不适合decimal
,更不用说long
或int
。对此的解决方案是使用.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”,以防止它们被解析为负数。