两个字节数组byte[]怎么用C#实现异或运算?请帖代码,呵呵

frustrate2 2011-07-11 12:47:05
byte[]数组1:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
byte[]数组2: 0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67

数组1和数组2进行异或运算,如下:
0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF

异或:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67

结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98

请各位大大将代码贴出来,帮助下小弟。呵呵

...全文
2330 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
frustrate2 2011-07-11
  • 打赏
  • 举报
回复
谢谢大家,呵呵
vrhero 2011-07-11
  • 打赏
  • 举报
回复
var 结果=数组1.Zip(数组2,(b1,b2)=>b1^b2).ToArray();
ly745455 2011-07-11
  • 打赏
  • 举报
回复
楼上的很图像很niu
mjp1234airen4385 2011-07-11
  • 打赏
  • 举报
回复
byte[] bs1 = {0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
byte[] bs2 = {0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67};
byte[] bs3 = new byte[bs1.Length];
for (int i = 0; i < bs1.Length; i++)
{
bs3[i] = (byte)(bs1[i] ^ bs2[i]);
}
cosmo_sei 2011-07-11
  • 打赏
  • 举报
回复
注意异或操作将byte隐式转换为int,需要再显示转换为byte

byte[] arr1 = { 0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
byte[] arr2 = { 0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67 };
byte[] arrXor = new byte[arr1.Length];

for (int i = 0; i < arr1.Length; i++)
{
arrXor[i] = (byte)(arr1[i] ^ arr2[i]);
Console.WriteLine("0x{0:x}", arrXor[i]);
}
机器人 2011-07-11
  • 打赏
  • 举报
回复
var data1 = new[]{ 0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
var data2 = new[]{ 0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67 };
var data3 = new byte[data1.Length];
for(int i=0; i<data1.Length; i++)
data3[i] = data1[i] ^ data2[i];
老毕 2011-07-11
  • 打赏
  • 举报
回复
是对两个等长的byte数组,逐元素进行XOR运算,然后把结果保存进另一个数组吗?如果是,那就是一个循环啊

byte[] result = new byte[array1.Length];
for(int i =0; i<array1.Length; i++)
result[i] = array1[i] ^ array2[i];

111,113

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧