vb 做串口通讯,以二进制形式发送数据,要求在最后加上一个字节的和校验码,为前面所有字节的和。 v

vb做串口通讯,以二进制形式发送数据,要求在最后加上一个字节的和校验码,为前面所有字节的和。vb中不知道该怎么算,主要是如何处理溢出问题。比如我用计算器算出前面所有数据的... vb 做串口通讯,以二进制形式发送数据,要求在最后加上一个字节的和校验码,为前面所有字节的和。 vb中不知道该怎么算,主要是如何处理溢出问题。比如我用计算器算出前面所有数据的和为十六进制的A1F1,则实际和校验码应该为F1,请问vb中怎么做? 展开
 我来答
网海1书生
科技发烧友

2014-02-06 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26232

向TA提问 私信TA
展开全部
假定你的计算结果放在变量x中,则再这样即可:
x = x And &HFF
追问
试过了 真的可以 原来这么简单 谢谢!
Private Sub Command1_Click()
Dim x As Integer
Dim y As Byte

x = &HABCD
x = x And &HFF
y = x
Print Hex(x)
Print Hex(y)

End Sub
szhaiwangxing
2014-02-05 · TA获得超过2334个赞
知道小有建树答主
回答量:712
采纳率:100%
帮助的人:575万
展开全部
先把前面的字节换算成int相加,用convert.int32(),再运用算法把求和的数字整除16求余,然后余数的数值转换为字节就可以了。可能有更好的办法,我就先暂时想到那么多。

int c=conver.int32(a)+convert.int32(b);
将C整除16取余数,再将余数转换成字节,就可以了。
byte d=conver.tobyte(c%16);

我用的是C#.NET。方法应该差不多。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-05
展开全部
校验码 CRC 还是 CRC16?
追问
和校验,是把前面的字节相加,结果舍弃高字节,只保留最后一个字节即为校验码   比如前面所有字节加起来为十六进制的A1F1 则校验码为F1
追答
LRC 也是 校验

建议多看看 文档

祝好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式