C语言字符串校验和

Python08

C语言字符串校验和,第1张

请把问题的描述提供的更具体一些,否则无法提供更详细的帮助。就现有的信息来看,有这几个点:1.C语言字符串。就是以单字节字符为内容,用'\0'表示结尾的字符串表示方式。2.校验和。由数据计算得到的一个数值,具有以下两个特性: a)相同的数据计算出的校验和结果必定是相同的 b)数据有所变动时,计算出的校验和一般不相同常用的校验和有累加和异或方式。比如,[1,2,3,4,5]这一组数据的累加较验和就是1+2+3+4+5=153.异或。异或是一种二进制(逻辑)运算,定义如下: 1与1、0与0的异或结果为0 1与0、0与1的异或结果为1如35和27,其二进制表示为:100011和11011。低位对齐后进行异或,结果为:111000,也就是564.在C语言中,异或运算的运算符为:^ 也就是说35^27的值就是56。

【temp=temp+*chk8】

temp加上 chk8地址上的值 再复制给temp

【if(temp<*chk8)】

如果temp小于chk8地址上的值

temp自增

chk8位置自增

*chk8 你可以当它是个变量

chk8 的值是一个地址

chk8++ 指针往后移,后移的大小和指针指向类型大小一样.

用位运算按位与得出校验数,参考代码如下:#include<stdio.h>int main(){char str[101] int i,sum gets(str) i=sum=0 while(str[i]!=0)sum+=str[i++] printf("%d",sum&(0x0FF)) return 0}