简单地将十六进制部分转换为数字C#
如何将十六进制字符串转换为数字,并以简单的方式计算总和 我希望每秒剪切一次字符串char-->BB6050C9-->BB | 60 | 50 | C9简单地将十六进制部分转换为数字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 =
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);