Шестнадцатеричный оператор AND в Excel и/или Visual Basic

StackOverflow https://stackoverflow.com/questions/662701

  •  20-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь 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))

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top