Advertisement
ASP_Volume3 Miscellaneous #52737

HiByte,HiWord,LoByte,LoWord, MakeInt and MakeLong

Often especially when dealing with the API, byte and integer data types will be packed into LONG INTEGER (32 bit) values. Thes snippets allow you to decode/encode these 32 bit longs:

AI

Tóm tắt bởi AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Mã nguồn
original-source
Public Function hiByte(ByVal w As Integer) As Byte
  If w And &H8000 Then
   hiByte = &H80 Or ((w And &H7FFF) \ &HFF)
  Else
   hiByte = w \ 256
  End If
End Function
Public Function HiWord(dw As Long) As Integer
 If dw And &H80000000 Then
   HiWord = (dw \ 65535) - 1
 Else
  HiWord = dw \ 65535
 End If
End Function
Public Function LoByte(w As Integer) As Byte
 LoByte = w And &HFF
End Function
Public Function LoWord(dw As Long) As Integer
 If dw And &H8000& Then
   LoWord = &H8000 Or (dw And &H7FFF&)
  Else
   LoWord = dw And &HFFFF&
  End If
End Function
Public Function MakeInt(ByVal LoByte As Byte, ByVal hiByte As Byte) As Integer
MakeInt = ((hiByte * &H100) + LoByte)
End Function
Public Function MakeLong(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long
MakeLong = ((HiWord * &H10000) + LoWord)
End Function
Bình luận gốc (3)
Được khôi phục từ Wayback Machine