Шестнадцатеричный оператор AND в Excel и/или Visual Basic
Вопрос
Я пытаюсь AND
два шестнадцатеричных числа поразрядно Excel/Visual Basic
.
Бывший. 53FDBC AND 00FFFF
который должен дать 00FDBC
.
Есть идеи, как это сделать?
Решение
Я предполагаю, что у вас есть два значения, хранящиеся в виде строк.В этом случае вы можете сделать следующее:
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)
результат теперь содержит «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
Значение HEX 0xFFFF в десятичном виде составляет 65536 HEX Значение 0x53FDBC в десятичном виде 5504444
Итак, вы можете использовать =DEC2HEX(MOD(5504444,65536))
Не связан с StackOverflow