以下是两个子函数的代码,我想知道他们每一步表示什么意思,想注释更清晰一些,求高手指导
#include"stdio.h"
#include"string.h"
// LFSR进动一拍
unsigned char *LFSR_go(unsigned char *pzt, unsigned char *pjg, int n) //n为状态区字节数
{
unsigned char t=0;
int c=0,i;
for (i=0; i<n; i++) t^=(pzt[i]&pjg[i]);
t^=((t<<1)^(t<<2)^(t<<3)^(t<<4)^(t<<5)^(t<<6)^(t<<7));
if (t&0x80) c=1;
for (i=n-1; i>=0; i--)
{
t=pzt[i];
pzt[i]=((t<<1)|c)&0xff;
c=(t&0x80)?1:0;
}
return (pzt);
}
// DSR进动一拍
unsigned char *DSR_go(unsigned char *pzt, unsigned char *pjg, int n) //n为状态区字节数
{
unsigned char t;
int c=0,i;
for (i=n-1; i>=0; i--)
{
t=pzt[i];
pzt[i]=((t<<1)|c)&0xff;
c=(t&0x80)?1:0;
}
if (c)
for (i=0; i<n; i++) pzt[i]^=pjg[i];
return (pzt);
}
3.6.1 代码注释