7,789
社区成员
发帖
与我相关
我的任务
分享Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
Dim a As Integer
Dim i As Integer
Dim ByteSj(1) As Byte
a = 15769
CopyMemory ByteSj(0), a, 2
For i = 0 To 1
Print ByteSj(i)
Next
End Sub
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
Dim a As Long
Dim i As Integer
Dim ByteSj(3) As Byte
a = -2515769
CopyMemory ByteSj(0), a, 4
For i = 0 To 3
Print ByteSj(i)
Next
End Sub
'就是将数据转换为16进制数.
'再每二位二位放至数组中.
Option Explicit
Private Sub Command1_Click()
Dim Data As Long
Dim HData As String
Data = 123456789
HData = ConverTenToN(Data, 16, "0123456789ABCDEF")
If Len(HData) Mod 2 = 1 Then
HData = "0" & HData
End If
Dim Arr() As Byte
ReDim Arr(1 To Len(HData) / 2) As Byte
Dim i As Long
For i = 1 To Len(HData) / 2
Arr(i) = "&H" & Mid(HData, i * 2 - 1, 2)
Next
For i = 1 To Len(HData) / 2
MsgBox Arr(i)
Next
End Sub
'*************************************
'目的:将10进制数转换为N进制数
'输入: Ten 要转换的十进制数
' N N进制数
' Chr N进制数的字符集
'返回: 成功 转换后的数据
' 失败 ""
'*************************************
Private Function ConverTenToN(ByVal Ten As Long, ByVal N As Long, ByVal Chr As String) As String
If N <= 1 Then Exit Function
If Len(Chr) < N Then Exit Function
While Ten <> 0
ConverTenToN = Mid(Chr, (Ten Mod N) + 1, 1) & ConverTenToN
Ten = Int(Ten / N)
Wend
End Function