如何实现异或校验?

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实现。谢谢
...全文
6269 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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];

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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