Шестнадцатеричный ANDing в Excel и / или Visual Basic - PullRequest
4 голосов
/ 19 марта 2009

Я пытаюсь AND два шестнадцатеричных числа по битам в Excel/Visual Basic.

Ex. 53FDBC AND 00FFFF, что должно дать 00FDBC.

Есть идеи, как это сделать?

Ответы [ 3 ]

6 голосов
/ 19 марта 2009

Полагаю, у вас 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)

результат теперь содержит «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
0 голосов
/ 23 февраля 2015

шестнадцатеричное значение 0xFFFF в десятичном виде - 65536 шестнадцатеричное значение 0x53FDBC в десятичном виде - 5504444

Так что вы можете использовать = DEC2HEX (MOD (5504444,65536))

0 голосов
/ 19 марта 2009

iirc, он встроенный, только операторы сдвига битов не встроены

& H53FDBC и & H00FFFF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...