java 如何计算校验和,比如如下这段代码如何修改?

Dated=newDate();byte[]b1=newbyte[8];Datedate=newDate(System.currentTimeMillis());Cale... Date d = new Date();
byte[] b1 = new byte[8];
Date date = new Date(System.currentTimeMillis());
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
b1[0] = (byte) 0XF5; //Head
b1[1] = (byte)(year&0xff); //年
b1[2] = (byte) (c.get(Calendar.MONTH) + 1); //月
b1[3] = (byte) c.get(Calendar.DAY_OF_MONTH); //日
b1[4] = (byte) c.get(Calendar.HOUR_OF_DAY); //小时
b1[5] = (byte) c.get(Calendar.MINUTE); //分
b1[6] = (byte) c.get(Calendar.SECOND); //秒
b1[7] = (byte)(b1[0]^b1[1]^b1[2]^b1[3]^b1[4]^b1[5]^b1[6]); //校验符
我现在的需求是将b1[0],b1[1],b1[2],--b1[6]全部放入b1[7]里面进行校验,然后再将这些数据发送出去,请问这个如何做校验?
展开
 我来答
山水阿锐
推荐于2016-06-29 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,1、 编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。
要求:1)以命令行形式运行:check_sum infile
其中check_sum为程序名,infile为输入数据文件名。
2)输出:数据文件的效验和
附:效验和(checksum)
 原理:把要发送的数据看成二进制整数序列,并计算他们的和。若数据字节长度为奇数,则在数据尾部补一个字节的0以凑成偶数。
 例子:16位效验和计算,下图表明一个小的字符串的16位效验和的计算。
为了计算效验和,发送计算机把每对字符当成16位整数处理并计算效验和。如果效验和大于16位,那么把进位一起加到最后的效验和中。
追问
新手,完全不懂,能给一小段代码进行参考学习么
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式