VB byte 转 integer
VB中如何将byte数据转为integer或long从串口接收的数据在线等直接赋值或者val能转85,但是170不行。128以上的怎么转...
VB中如何将byte数据转为integer或long
从串口接收的数据
在线等
直接赋值或者val能转85,但是170不行。128以上的怎么转 展开
从串口接收的数据
在线等
直接赋值或者val能转85,但是170不行。128以上的怎么转 展开
6个回答
展开全部
VB6.0可使用以下方法将2字节(Byte)转换为Integer整数。
1)通过使用Api 函数CopyMemory来实现转换:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Dim Buffer(1) As Byte
Private Sub BinToInt_Click() '将2字节转换为Integer
Dim sinStr As String
Dim sinSj As Integer
Dim i As Integer
CopyMemory ByVal VarPtr(sinSj), ByVal VarPtr(Buffer(0)), 2
Text1 = sinSj
End Sub
Private Sub Form_Load()
Text1 = ""
Buffer(0) = 12
Buffer(1) = 124
End Sub
需要注意的是高低字节的顺序。
2)也可通过对2字节值得计算转换为Integer整数:
Private Sub Command1_Click()
Dim B1 As Long
Dim B0 As Long
B1 = Buffer(1)
B0 = Buffer(0)
If Buffer(1) <= 127 Then
Text1 = B1 * 256 + B0
Else
Text1 = B1 * 256 + B0 - 65536
End If
End Sub
Private Sub Form_Load()
Text1 = ""
Buffer(0) = 12
Buffer(1) = 255
End Sub
同样也需注意高低字节的顺序。
展开全部
直接赋值就可以啊 或者用val 也可以
---
直接赋值或者val能转85,但是170不行。128以上的怎么转
这不是给integer或long赋值导致的错误吧 这两种表示的范围都byte大 不会有溢出的 你说的不行报什么异常呢
---
直接赋值或者val能转85,但是170不行。128以上的怎么转
这不是给integer或long赋值导致的错误吧 这两种表示的范围都byte大 不会有溢出的 你说的不行报什么异常呢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AnInteger=Cint(待转换数据)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
19、byte类型转integer:
If a(0) > &H7F Then
b = ((a(0) - &H80) * 256) Or &H8000 + a(1)
Else
b = a(0) * 256 + a(1)
End If
20、integer类型转byte:
Public Function inttobyte2(int1 As Integer, byte1 As Byte, byte2 As Byte)
If int1 < 0 Then
Dim int2 As Integer
int2 = int1 And Not &H8000
byte1 = int2 \ 256 + &H80
byte2 = int2 And &HFF
Else
byte1 = int1 \ 256
byte2 = int1 And &HFF
End If
End Function
If a(0) > &H7F Then
b = ((a(0) - &H80) * 256) Or &H8000 + a(1)
Else
b = a(0) * 256 + a(1)
End If
20、integer类型转byte:
Public Function inttobyte2(int1 As Integer, byte1 As Byte, byte2 As Byte)
If int1 < 0 Then
Dim int2 As Integer
int2 = int1 And Not &H8000
byte1 = int2 \ 256 + &H80
byte2 = int2 And &HFF
Else
byte1 = int1 \ 256
byte2 = int1 And &HFF
End If
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dim b() as byte
dim i as integer
i=13525
b=i
接收时反过来
ii=b
就OK了
dim i as integer
i=13525
b=i
接收时反过来
ii=b
就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询