我试图将python代码复制成C格式,代码如下
bytes([ i ^ j for i, j in zip(b'a', b'1') ]).hex()
上述代码的结果为50
下面是c版本,但结果是3830而不是50
class Program
{
static void Main(string[] args)
{
byte[] satu = Encoding.ASCII.GetBytes("a");
byte[] dua = Encoding.ASCII.GetBytes("1") ;
var result = string.Empty;
foreach (var pair in Zip(satu, dua))
{
//Console.WriteLine(pair.First ^ pair.Second);
result += pair.First ^ pair.Second;
}
Console.WriteLine(result);
byte[] resbyte = Encoding.ASCII.GetBytes(result);
var hexString = BitConverter.ToString(resbyte);
Console.WriteLine(hexString.Replace("-", ""));
}
class Pair<T1, T2>
{
public T1 First { get; set; }
public T2 Second { get; set; }
}
static IEnumerable<Pair<T1, T2>> Zip<T1, T2>(IEnumerable<T1> first, IEnumerable<T2> second)
{
using (IEnumerator<T1> e1 = first.GetEnumerator())
using (IEnumerator<T2> e2 = second.GetEnumerator())
{
while (e1.MoveNext() && e2.MoveNext())
{
yield return new Pair<T1, T2>() { First = e1.Current, Second = e2.Current };
}
}
}
}
目前没有回答
相关问题 更多 >
编程相关推荐