如何把这样的两组字符串进行异或操作
怎么把这样的两组字符串进行异或操作?
怎么把这样的两组字符串进行异或操作?
1400170155A7BF00F3B45BB976D078B42235FE4A171527DA4B0A07DC43D1827D417B4A10
140018010238E725531BA4535FFDFF0637DE891E5D65A8EB4DC7930F7EE3C764435F2C40
------解决思路----------------------
using System;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var map1 = Enumerable.Range(0, 16).ToDictionary(i => i, i => i.ToString("x").ToUpper()[0]);
var map2 = map1.ToDictionary(i => i.Value, i => i.Key);
var str1 = "1400170155A7BF00F3B45BB976D078B42235FE4A171527DA4B0A07DC43D1827D417B4A10";
var str2 = "140018010238E725531BA4535FFDFF0637DE891E5D65A8EB4DC7930F7EE3C764435F2C40";
var result = string.Concat(str1.Zip(str2, (c1, c2) => map2[c1] ^ map2[c2]).Select(i => map1[i]));
Console.WriteLine(result);
}
}
}
------解决思路----------------------
怎么把这样的两组字符串进行异或操作?
1400170155A7BF00F3B45BB976D078B42235FE4A171527DA4B0A07DC43D1827D417B4A10
140018010238E725531BA4535FFDFF0637DE891E5D65A8EB4DC7930F7EE3C764435F2C40
------解决思路----------------------
using System;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var map1 = Enumerable.Range(0, 16).ToDictionary(i => i, i => i.ToString("x").ToUpper()[0]);
var map2 = map1.ToDictionary(i => i.Value, i => i.Key);
var str1 = "1400170155A7BF00F3B45BB976D078B42235FE4A171527DA4B0A07DC43D1827D417B4A10";
var str2 = "140018010238E725531BA4535FFDFF0637DE891E5D65A8EB4DC7930F7EE3C764435F2C40";
var result = string.Concat(str1.Zip(str2, (c1, c2) => map2[c1] ^ map2[c2]).Select(i => map1[i]));
Console.WriteLine(result);
}
}
}
------解决思路----------------------
var str1 = "1400170155A7BF00F3B45BB976D078B42235FE4A171527DA4B0A07DC43D1827D417B4A10";
var str2 = "140018010238E725531BA4535FFDFF0637DE891E5D65A8EB4DC7930F7EE3C764435F2C40";
var str3 = new string(str1.Zip(str2, (c1, c2) => (Convert.ToUInt32(c1) ^ Convert.ToUInt32(c2)).ToString("X")[0]).ToArray());