VB byte 转 integer

VB中如何将byte数据转为integer或long从串口接收的数据在线等直接赋值或者val能转85,但是170不行。128以上的怎么转... VB中如何将byte数据转为integer或long
从串口接收的数据
在线等
直接赋值或者val能转85,但是170不行。128以上的怎么转
展开
 我来答
zdingyun
2015-11-02 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48168
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

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

同样也需注意高低字节的顺序。

百度网友2032eaa
2009-07-03 · TA获得超过809个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1803万
展开全部
直接赋值就可以啊 或者用val 也可以

---

直接赋值或者val能转85,但是170不行。128以上的怎么转

这不是给integer或long赋值导致的错误吧 这两种表示的范围都byte大 不会有溢出的 你说的不行报什么异常呢
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdinten
2009-07-02 · TA获得超过6588个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1296万
展开全部
AnInteger=Cint(待转换数据)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuerdianchang
2015-10-14 · TA获得超过7910个赞
知道大有可为答主
回答量:3450
采纳率:37%
帮助的人:1162万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数据魂
2009-07-02 · TA获得超过1596个赞
知道小有建树答主
回答量:921
采纳率:0%
帮助的人:644万
展开全部
dim b() as byte
dim i as integer

i=13525
b=i

接收时反过来
ii=b
就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式