
3个回答
展开全部
将Long类型转换成Byte字节类型数组及反转
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Dim Buffer(3) As Byte
Private Sub LngToBin_Click()
Dim i As Integer
Dim hexData As String
Dim a As Long
a = Val(Text1)
CopyMemory Buffer(0), a, 4
For i = 0 To UBound(Buffer)
Debug.Print Buffer(i)
Next
End Sub
Private Sub BinToLng_Click()
Dim sinStr As String
Dim sinSj As Long
Dim i As Integer
CopyMemory ByVal VarPtr(sinSj), ByVal VarPtr(Buffer(0)), 4
Text2 = sinSj
End Sub
Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Dim Buffer(3) As Byte
Private Sub LngToBin_Click()
Dim i As Integer
Dim hexData As String
Dim a As Long
a = Val(Text1)
CopyMemory Buffer(0), a, 4
For i = 0 To UBound(Buffer)
Debug.Print Buffer(i)
Next
End Sub
Private Sub BinToLng_Click()
Dim sinStr As String
Dim sinSj As Long
Dim i As Integer
CopyMemory ByVal VarPtr(sinSj), ByVal VarPtr(Buffer(0)), 4
Text2 = sinSj
End Sub
Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub
展开全部
不知道你转成BYTE干什么,LONG如果大于255是不能直接转换的,你可以通过序列化转换成BYTE数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是MSDN 的例子:
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询