【发布时间】:2009-03-19 15:38:55
【问题描述】:
我正在尝试在Excel/Visual Basic 中按位对AND 两个十六进制数。
例如。 53FDBC AND 00FFFF 应该产生 00FDBC。
关于如何做到这一点的任何想法?
【问题讨论】:
我正在尝试在Excel/Visual Basic 中按位对AND 两个十六进制数。
例如。 53FDBC AND 00FFFF 应该产生 00FDBC。
关于如何做到这一点的任何想法?
【问题讨论】:
我假设您将 2 个值存储为字符串。在这种情况下,您可以执行以下操作:
Dim hex1 As String
hex1 = "53FDBC"
Dim hex2 As String
hex2 = "00FFFF"
Dim bin1 As String
bin1 = CLng("&H" & hex1)
Dim bin2 As String
bin2 = CLng("&H" & hex2)
Dim result As String
result = Hex$(bin1 And bin2)
result 现在包含“FDBC”,但您可能希望在左边用零填充
作为一个函数(excel模块),这可以实现为:
Function hexand(hex1 As String, hex2 As String) as String
Dim bin1 As String
bin1 = CLng("&H" & hex1)
Dim bin2 As String
bin2 = CLng("&H" & hex2)
hexand = Hex$(bin1 And bin2)
End Function
【讨论】:
iirc,它是内置的,只有位移运算符不是内置的
&H53FDBC 和 &H00FFFF
【讨论】:
十进制0xFFFF的十六进制值为65536 十进制 0x53FDBC 的十六进制值为 5504444
所以你可以使用 =DEC2HEX(MOD(5504444,65536))
【讨论】: