Tác giả: truongphu
Mô tả: Tách số Long ra byte và ứng dụng
Số Long được dựng trên 4 byte. Vậy mỗi số Long cụ thể thì các byte sẽ là bao nhiêu?
Ví dụ Có số Long = 56456645. Thực hiện tách
A- Cách 1: Dùng CopyMemory
Code: Select all
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Sub Command1_Click()Dim m(3) As ByteCopyMemory m(0), 56456645, 4For i = 0 To 3a = a & "Byte(" & i & ") = " & m(i) & vbCrLfNextMsgBox aEnd Sub
Code: Select all
Private Type typByteArr ByteArray(3) As ByteEnd TypePrivate Type typLong lng As LongEnd Type Private Sub Command2_Click()Dim Arr As typByteArr, L As typLong L.lng = 56456645 LSet Arr = L Dim I%, S As String For I = 0 To 3 S = S & vbCrLf & "Byte " & I & " is " & Arr.ByteArray(I) Next MsgBox SEnd Sub
Màu sắc trong hệ màu RGB là một số Long. Tối đa là 16777215 là màu trắng (255, 255, 255), 0 là màu đen (0, 0, 0)
Để tìm nhanh các yếu tố RGB, ta dùng các cách trên:
vd Dùng CopyMemory tìm màu có số Long là 156645:
Code: Select all
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)Private Sub Form_Load() Dim m(2) As ByteCopyMemory m(0), 156645, 3MsgBox "R: " & m(0) & " G: " & m(1) & " B: " & m(2)End Sub