不懂C语言,大家帮我看一下这么几句话是什么意思,谢谢啦

需要处理一点C的代码,但是不懂C语言,谢谢大家帮我看看这段话的意思,应该很简单的吧,可是不懂就是不懂,呵呵unsignedcharcksum1(unsignedchar*... 需要处理一点C的代码,但是不懂C语言,谢谢大家帮我看看这段话的意思,应该很简单的吧,可是不懂就是不懂,呵呵

unsigned char cksum1(unsigned char *p,int len)
{
unsigned char *q,i;
unsigned char checksum=0;
q=p;
for(i=0;i<len;i++)
{
checksum+=q[i];
}
return checksum;
}
展开
 我来答
xiefeng143
推荐于2016-10-23 · TA获得超过101个赞
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:72万
展开全部
unsigned char cksum1(unsigned char *p,int len) //该函数传入一个字符数组的地址和数组长度
{
unsigned char *q,i;
unsigned char checksum=0; //数组和变量先初始化为0
q=p; //将数组地址给q。后面用指针q访问数组
for(i=0;i<len;i++)
{
checksum+=q[i]; //将数组的字符的ascii码求和
}
return checksum; //返回求和值。 因unsigned char类型为0~255范围。所有当checksum超过255时回归零重新计数。
}

假设一个数组a[3]={a,c,d};
那调用这个函数形式为
sum = cksum1(a,3);
最终返回的结果就是
a[3]数组里所有字符的ascii码之和即 ‘a’+‘b' + ’c' = 97+98+99 = 294
因294有超过255.所以该函数实际返回的值为294 %256 = 38
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dzmcobk
2014-05-23 · TA获得超过748个赞
知道小有建树答主
回答量:431
采纳率:76%
帮助的人:133万
展开全部
这是从一些预测游戏中考下来的代码么?根本不标准也不安全啊……我跟你解释一下程序的意思:计算机一共定义256个字符(字母数字加各种标点符号),编号分别为0-255,基本上是循环的(意思是,编号等于256的字符就相当于编号为0的字符,257就相当于编号为1)。
这个程序的意思就是:取出一定数量(len个)的字符,把他们的编号相加得到一个和,然后结果得到的是:编号为那个和的字符……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
初見尋常
2014-05-23
知道答主
回答量:15
采纳率:50%
帮助的人:9.6万
展开全部
对参数p指向的长度为len的字符串求校验和,校验和算法就是简单求所有字符的和,不考虑溢出,最后返回校验和。但代码里有个问题好像,参数的长度是int类型,函数里用来控制循环的变量i定义成了unsigned char,这样当len大于255时可能会有问题,当然也可能不会,取决于设计校验方式的出发点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茜灬一
2014-05-23 · 超过11用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:26.9万
展开全部
定义无符号字母函数CKSUN1(获取无符号字符P的指针,数字型len)
{
定义无符号字符指针p,字符i;
定义无符号字符checksum并初始化为0;
把p的值赋值给q;
只要(i第一次是0,i小于len;i自增1)
{把checksum的值加q数组第i个的值赋值给checksum;
}(到这边再回到上两行的只要语段,直到i不小于len才执行下面的代码)
回到checksum,就是说这个函数最后的结果就是checksum,也就是这个东西有用;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茶来香
2014-05-23 · TA获得超过106个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:103万
展开全部
unsigned char在计算机中使用补码存储,貌似是把P的值的和放到checksum,返回一个补码!不知道对不对,个人感觉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式