那要看你是按什么格式发送的。 如果你是高字节在前,则Dim n As Long, i As IntegerFor i = 0 To 3 n = n * 2 n = n + buffer(i) Next i反之 For i = 3 To 0 Step -1 n = n * 2 n = n + buffer(i) Next i
你需将接收的4字节BYTE数据按通信协议接收后转为16进制的字符串形式,然后用如下代码方式处理成10进制数: Dim a As Long Dim b As Variant Text1 = "ABCDEF00" b = Text1 a = Val("&H" & b) Text2 = a 'Text2 显示其10进制值为-1412567296
shiningfly2006 () 的意思应该是将 4 个 Byte 转换成一个 Long 吧?function BytesToLong(buffer() as byte) as long dim i as long dim l as long for i= 3 to 0 step -1 l = l * &H100 + (buffer(i) and iif(i=3, &H7f, &Hff)) next if (buffer(3) and &H80) <> 0 then l = l or &H80000000 bytestolong = l end function
Dim n As Long, i As IntegerFor i = 0 To 3 n = n * 256 n = n + buffer(i) Next i反之 For i = 3 To 0 Step -1 n = n * 256 n = n + buffer(i) Next i
如果你是高字节在前,则Dim n As Long, i As IntegerFor i = 0 To 3
n = n * 2
n = n + buffer(i)
Next i反之
For i = 3 To 0 Step -1
n = n * 2
n = n + buffer(i)
Next i
Dim a As Long
Dim b As Variant
Text1 = "ABCDEF00"
b = Text1
a = Val("&H" & b)
Text2 = a 'Text2 显示其10进制值为-1412567296
dim i as long
dim l as long
for i= 3 to 0 step -1
l = l * &H100 + (buffer(i) and iif(i=3, &H7f, &Hff))
next
if (buffer(3) and &H80) <> 0 then l = l or &H80000000
bytestolong = l
end function
n = n * 256
n = n + buffer(i)
Next i反之
For i = 3 To 0 Step -1
n = n * 256
n = n + buffer(i)
Next i