vb.net ,SerialPort 控件使用过程中,上位机向下位机发送命令时,关于字节数组问题,求大神解惑?

发送十六进制命令时,如,DimcmdSend(20)AsByte定义字节数组保存命令cmdSend(0)=&H01与cmdSend(0)=1有何区别,数据发送到下位机时,... 发送十六进制命令时,如,
Dim cmdSend(20) As Byte 定义字节数组保存命令
cmdSend(0)= &H01 与 cmdSend(0)=1 有何区别,数据发送到下位机时,下位机能自动将十进制的数识别成十六进制吗? (下位机通信协议中都是十六进制格式)
&H 能省略吗?
Dim topTemp As Integer = Val(txtTopTemp.Text)*10 ‘ 获取用户输入的温度上限值乘以10

这一句有没有错:Dim temp1 As Byte = Convert.ToByte(Hex(topTemp).Substring(2, 2)) ’ 截取温度值十六进制字符串第三和第四个子字符串, 再转成byte 格式 (下位机要求温度值这个有效数据先低位字节后高位字节,后面补两个00共4个字节,)
Dim temp1 As Byte = Convert.ToByte(Hex(topTemp).Substring(0, 2))
cmdSend(3) =temp1 没错吗,还是cmdSend(3) ="&H" & temp1
展开
 我来答
money0_04c351c2
2015-08-08 · TA获得超过4141个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1567万
展开全部
你的理解有误区。
桌子上有10个苹果,那么如果用16进制表示就应该写作有 &H0A 个苹果。
你还可以用2进制或者8进制等等各种进制表示,但苹果就是那么多。
比9个多一个,比11个少一个。
所以,进制只是在表示某数时才有用,对这个数值本身不会有任何影响。
cmdSend(0)= &H0A 等效于 cmdSend(0)=10
这只是你在写代码表述给编译器时的区别,发送出去的数值不需要你关心进制问题。
必然是比9多1,比11少1的那个数。下位机也不会搞错。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式