数据分配: 年 6 bits 0-63 月 4 bits 0-12(15) 日 5 bits 0-31 时 5 bits 0-23(31) 分 6 bits 0-59(63) 秒 6 bits 0-59(63)实际字节分配: Byte0 bit7-bit2 年 bit1-bit0 月的高 2 bit Byte1 bit7-bit6 月的低 2 bit, bit5-bit1 日, bit0 时的最高位 Byte2 bit7-bit4 时的低 4 bit, bit3-bit0 分的高 4 bit Byte3 bit7-bit6 分的高 2 位, bit5-bit0 秒Dim y As Integer, m As Integer, d As Integer, h As Integer, n As Integer, s As IntegerDim strDate As String, bytArr(3) As Byte'Encode Private Sub Command1_Click() strDate = "06-07-07 10:11:15" y = Year(strDate) Mod 100 If y > 63 Then MsgBox "年超出表示范围!" Exit Sub End If m = Month(strDate) d = Day(strDate) h = Hour(strDate) n = Minute(strDate) s = Second(strDate)bytArr(0) = y * 4 + m \ 4 bytArr(1) = (m Mod 4) * 64 + d * 2 + h \ 16 bytArr(2) = (h Mod 16) * 16 + n \ 4 bytArr(3) = (n Mod 4) * 64 + s
Debug.Print bytArr(0), bytArr(1), bytArr(2), bytArr(3) End Sub'Decode Private Sub Command2_Click() y = bytArr(0) \ 4 m = (bytArr(0) Mod 4) * 4 + bytArr(1) \ 64 d = (bytArr(1) Mod 64) \ 2 h = (bytArr(1) Mod 2) * 16 + bytArr(2) \ 16 n = (bytArr(2) Mod 16) * 4 + bytArr(3) \ 64 s = bytArr(3) Mod 64Debug.Print y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s Debug.Print Format(y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s, "yyyy-mm-dd HH:nn:ss") End Sub
其他都没什么,就是年那部分比较麻烦,要自己定个协议
年 6 bits 0-63
月 4 bits 0-12(15)
日 5 bits 0-31
时 5 bits 0-23(31)
分 6 bits 0-59(63)
秒 6 bits 0-59(63)实际字节分配:
Byte0 bit7-bit2 年 bit1-bit0 月的高 2 bit
Byte1 bit7-bit6 月的低 2 bit, bit5-bit1 日, bit0 时的最高位
Byte2 bit7-bit4 时的低 4 bit, bit3-bit0 分的高 4 bit
Byte3 bit7-bit6 分的高 2 位, bit5-bit0 秒Dim y As Integer, m As Integer, d As Integer, h As Integer, n As Integer, s As IntegerDim strDate As String, bytArr(3) As Byte'Encode
Private Sub Command1_Click()
strDate = "06-07-07 10:11:15"
y = Year(strDate) Mod 100
If y > 63 Then
MsgBox "年超出表示范围!"
Exit Sub
End If
m = Month(strDate)
d = Day(strDate)
h = Hour(strDate)
n = Minute(strDate)
s = Second(strDate)bytArr(0) = y * 4 + m \ 4
bytArr(1) = (m Mod 4) * 64 + d * 2 + h \ 16
bytArr(2) = (h Mod 16) * 16 + n \ 4
bytArr(3) = (n Mod 4) * 64 + s
Debug.Print bytArr(0), bytArr(1), bytArr(2), bytArr(3)
End Sub'Decode
Private Sub Command2_Click()
y = bytArr(0) \ 4
m = (bytArr(0) Mod 4) * 4 + bytArr(1) \ 64
d = (bytArr(1) Mod 64) \ 2
h = (bytArr(1) Mod 2) * 16 + bytArr(2) \ 16
n = (bytArr(2) Mod 16) * 4 + bytArr(3) \ 64
s = bytArr(3) Mod 64Debug.Print y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s
Debug.Print Format(y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s, "yyyy-mm-dd HH:nn:ss")
End Sub
不过没有vb,试不了。。