Como converter uma string para um valor binário, depois hexadecimal?

0

Em uma coluna, tenho um bitstring codificado como um tipo de string. Em uma coluna diferente, desejo ter os mesmos bits (potencialmente começando com 0 inicial), mas como um tipo de valor binário. Em última análise, eu quero tê-lo em representação hexadecimal (string ou tipo hexadecimal, não importa) em uma terceira coluna.

Como isso é feito? Eu tenho que programar algo para isso ou há uma maneira mais rápida?

A célula de entrada contém a seguinte string: 00000100100011000100100011

Desejo obter a cadeia: 0123123

    
por Wuschelbeutel Kartoffelhuhn 28.05.2014 / 23:56

2 respostas

0

Basta dividir o número binário com mid (cell, index_start, len) e fazer uma alteração de base por partes com bin2hex () seguida por uma concatenação (via CONCATENATE () - referências de células são delimitadas por e comercial).

Linha de exemplo:

0010000100000001110100101 está em uma célula X1

Divida-o em ceil (len (X1) / 8) = 4 células para obter grupos de 8 bits cada.

Para dividi-lo em 4 células, use = MID ($ X1, start_pos, 8), onde startpos é o índice inicial (1 baseado) do bitstring em X1

Em outro conjunto de 4 células, concertar as 4 células anteriores em hexadecimais referenciando-as com = BIN2HEX (8bitNrCell, 2)

Concatene as 4 células anteriores com = CONCATENATE (1cell & 2ndcell & thirdcell & fourthcell)

    
por 29.05.2014 / 03:52
0
Public Function CRY_BIN2HEX(arg As String) As String
  Dim rez As String
  Dim lcnt As Integer
  For lcnt = 1 To WorksheetFunction.RoundUp(Len(arg) / 4, 0)
    If lcnt = 1 Then
        rez = WorksheetFunction.Bin2Hex(Mid(arg, 1, 4))
    Else
        rez = rez & WorksheetFunction.Bin2Hex(Mid(arg, (lcnt * 4) - 3, 4))
    End If
  Next lcnt
  CRY_BIN2HEX = rez
End Function
    
por 29.12.2014 / 13:23