有人晓得这是什么校验方式吗?求解答
有人知道这是什么校验方式吗?求解答char cc0,h1,h2for(int k0klenk++)cc^str[k]//str[]数组中存着
有人知道这是什么校验方式吗?求解答
char cc=0,h1,h2;
for(int k=0;k<len;k++)
cc^=str[k];//str[]数组中存着数据,要对这些数据进行校验.
h2=cc & 0x0f;
h1=(cc>>4) & 0x0f;
if(h1<10)
h1+='0';
else
h1+='A'-10;
if(h2<10)
h2+='0';
else
h2+='A'-10;
[解决办法]
程序的意图是想把结果(8位二进制数)用十六进制表示出来,高4位和低4位分别用一位十六制表示(0~9,A~F),
if-else语句则是在数字与字符间进行转换,
Eg: 1 == '1', 10 == 'A' 15 == 'F'
h1是结果的高4位数,h2是低4位数.
eg: 结果cc = 143 == 0x1F, h1 = 0x01 = 1 < 10 ==>> 1 + '0' = '1';
h2 = 0x0F = 15 > 10 ==>> 15 + 'A' - 10 = 'F'