如何实现异或校验?

ydl 2013-02-18 10:04:30
十六进制数字字串a0,1,a,2,d0,2,8,8,8,3,0,b,1,f0,8a,如何实现按a0依次异或到f0,异或校验结果8a,用MFC实现。谢谢
...全文
5841 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qq_19287779 2014-08-09
MOV A,#0A0H XRL A,#01H XRL A,#0AH XRL A,#02H XRL A,#0D0H XRL A,#02H XRL A,#08H XRL A,#08H XRL A,#08H XRL A,#03H XRL A,#00H XRL A,#0BH XRL A,#01H XRL A,#0F0H NOP ;A=08AH
  • 打赏
  • 举报
回复
阿麦 2013-02-18
如果直接做异或,可以参考 memcpy的做法 先四字节四字节做异或,有余数再两字节两字节,再有余数再一字节一字节。 当然,四字节做完记得再做一次四字节的高低WORD和一次二字节的高低BYTE的异或。 这样处理,提升的效率还是很可观的。
  • 打赏
  • 举报
回复
图灵狗 2013-02-18
异或直接写就好了,例如: cs = 0xa0 ^ 0x01; cs ^= 0x0a; cs ^= 0x02; ... cs ^= 0xf0;
  • 打赏
  • 举报
回复
阿麦 2013-02-18
我查了MFC地图,没见到实现这个功能的东东呢。
  • 打赏
  • 举报
回复
ydl 2013-02-18
做出来了,zhao4zhong1的思想很好,谢谢朋友们的帮助
  • 打赏
  • 举报
回复
赵4老师 2013-02-18
unsigned char b[]={0xa0,0x1,0xa,0x2,0xd0,0x2,0x8,0x8,0x8,0x3,0x0,0xb,0x1,0xf0};
int i;
unsigned char x;
x=0;
for (i=0;i<14;i++) x^=b[i];
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2013-02-18 10:04
社区公告
暂无公告