请问这段代码是什么意思

JasonCharlesBourne 2014-04-02 04:28:50

BYTE bySoure[512];
.
.
.
.
//往这个数组里面写东西,一共写了j个字节
unsigned char bSum=0;
for(int i=0;i < j;i++)
{
bSum ^= bySoure[i];
}
bySource[j++] ^= bSum;

谁知道中间那个循环是什么意思?
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一根烂笔头 2014-04-04
  • 打赏
  • 举报
回复
做CRC?
mangoalx 2014-04-03
  • 打赏
  • 举报
回复
不是加密,原数据又没变。肯定是校验,接收方把收到的数据一路异或下去最后得到0就校验无误。不过最后 bySource[j++] ^= bSum; 这里要保证要保证数组之前清过0才对
lanlvy 2014-04-03
  • 打赏
  • 举报
回复
会不会是特定的转换为了掩盖?或者加密?
max_min_ 2014-04-02
  • 打赏
  • 举报
回复
这一点看出来是什么操作了!只是异或后结果不知道拿去干啥了
JasonCharlesBourne 2014-04-02
  • 打赏
  • 举报
回复
引用 2 楼 boxmanstan 的回复:
你自己才知道用来做什么 做异或操作 这里保持符号位不变,我列了一串01试了一下,没找出规律
我也不知道,这是公司的代码。把这个字节数组最后传到com口给硬件了,硬件那边怎么用的我没有代码
杀意已决 2014-04-02
  • 打赏
  • 举报
回复
你自己才知道用来做什么 做异或操作 这里保持符号位不变,我列了一串01试了一下,没找出规律
图灵狗 2014-04-02
  • 打赏
  • 举报
回复
把所有元素异或起来而已,估计是用于做什么校验之类的。
引用 楼主 iloveiverson 的回复:

BYTE bySoure[512];
.
.
.
.
//往这个数组里面写东西,一共写了j个字节
unsigned char  bSum=0;
for(int i=0;i < j;i++)
{
bSum ^= bySoure[i];
}
bySource[j++]  ^= bSum;
谁知道中间那个循环是什么意思?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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