简单地将十六进制部分转换为数字C#

简单地将十六进制部分转换为数字C#,c#,hex,C#,Hex,如何将十六进制字符串转换为数字,并以简单的方式计算总和 我希望每秒剪切一次字符串char-->BB6050C9-->BB | 60 | 50 | C9 String shex = "BB6050C9"; int sum; 使用shex.Substring(..)我可以剪切字符串,但是如何将字符串转换为数字并以简单的方式求和呢 0xBB=187,0x60=97,0x50=80,0xC9=201 写下面的代码:- var output = 0; string input =

如何将十六进制字符串转换为数字,并以简单的方式计算总和

我希望每秒剪切一次字符串char-->BB6050C9-->BB | 60 | 50 | C9

String shex = "BB6050C9";
int sum;
使用shex.Substring(..)我可以剪切字符串,但是如何将字符串转换为数字并以简单的方式求和呢

0xBB=187,0x60=97,0x50=80,0xC9=201

写下面的代码:-

var output = 0;
            string input = "BB6050C9";
            char[] values = input.ToCharArray();
            foreach (char letter in values)
            {
                // Get the integral value of the character. 
                int value = Convert.ToInt32(letter);
                // Convert the decimal value to a hexadecimal value in string form. 
                string hexOutput = String.Format("{0:X}", value);
                Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
                output += Convert.ToInt32(hexOutput);
            }

            Console.WriteLine(output);
            Console.ReadKey();
然后使用
Value
属性返回的字节总和

var shb = SoapHexBinary.Parse("BB6050C9");
var sum = shb.Value.Sum(x => x);//returns 564
给定十六进制字节字符串(即2个字符),则值为:

16 * "0123456789abcdef".IndexOf(hex.ToLower()[0]) + "0123456789abcdef".IndexOf(hex.ToLower()[1])

您可以使用正则表达式拆分字符串,使用
Convert.ToInt32
解析数字,并将值汇总如下:

int sum = Regex.Matches(shex, "..").Cast<Match>()
  .Select(m => Convert.ToInt32(m.Value, 16))
  .Sum();
int sum=Regex.Matches(shex,“…”).Cast()
.Select(m=>Convert.ToInt32(m.Value,16))
.Sum();
String hex=“BB6050C9”;
int i=0;
长和=0;

虽然(i+2,听起来你真的想把十六进制字符串解析成一个字节数组。在那之后,剩下的就很简单了。在C#中解析十六进制有很多问题。啊,好吧,我只是C#的初学者:)我在找正确的词
16 * "0123456789abcdef".IndexOf(hex.ToLower()[0]) + "0123456789abcdef".IndexOf(hex.ToLower()[1])
int sum = Regex.Matches(shex, "..").Cast<Match>()
  .Select(m => Convert.ToInt32(m.Value, 16))
  .Sum();
    String hex = "BB6050C9";  

    int i = 0;
    long sum = 0;

    while (i + 2 <= hex.Length)
    {
        sum += Convert.ToInt64(hex.Substring(i, 2), 16);
        i += 2;
    }

    Console.WriteLine(sum);