在C#中添加hexa值

Hse*_*ung 4 c#

在我的系统中,我需要添加2个Hexa值.那么,我如何在C#中添加hexa值?我还想知道Hexa值的最大长度以及哪个Instance保存这些值.

Kob*_*obi 14

C#支持十六进制文字:

int i = 0xff;
Run Code Online (Sandbox Code Playgroud)

但是,它们具有与十进制文字相同的数值 - 您受所使用类型的限制.没有特殊Hexa类型.

如果您有一个整数并希望显示十六进制基数,则可以使用x格式(示例):

int i = 255;
Console.Write(i.ToString("x")); // ff
Console.Write(i); // 255
Run Code Online (Sandbox Code Playgroud)

需要注意的是写作i = 0xff还是i = 255完全一样的 -值是由编译器解决,你会得到相同的编译代码.

最后,如果你有十六进制数字的字符串,你可以将它们转换为整数,求和,然后重新格式化它们(例子):

string hexValue = "af";
int i = Convert.ToInt32(hexValue, 16); //175
Run Code Online (Sandbox Code Playgroud)


Kob*_*obi 4

对于64个字符的数字,需要使用BigInteger.Net 4的类型,普通类型太小:

BigInteger bi1 = BigInteger.Parse("123456789012345678901234567890123456789012345678901234567890abc5", NumberStyles.HexNumber);
BigInteger bi2 = BigInteger.Parse("123456789012345678901234567890123456789012345678901234567890abc1", NumberStyles.HexNumber);
BigInteger sum = BigInteger.Add(bi1, bi2);
Console.WriteLine("{0:x}", sum); //or sum.ToString("x")
Run Code Online (Sandbox Code Playgroud)

(记得添加对 的引用System.Numerics