Como formatar uma célula do Microsoft Excel 2007 em hexadecimal?

Como formatar uma célula do Microsoft Excel 2007 em hexadecimal?

Gostaria de formatar uma célula no Microsoft Excel 2007 em hexadecimal, mas não estou descobrindo como fazer isso.

Existe uma maneira integrada de alterar a base de 10 para 16 para uma célula?

Responder1

Conforme mencionado anteriormente, a fórmula =DEC2HEX(A1) é convertida em hexadecimal e DEC2HEX(A1,8) é convertida em hexadecimal com prefixo 0 para denotar 32 bits. Embora adicionar os 0s iniciais torne os números mais legíveis, especialmente se você usar uma fonte de ponto fixo, as versões hexadecimal e decimal podem se confundir quando todos os dígitos do número forem de 0 a 9 (por exemplo, 327701=50015).

Uma melhoria é adicionar o prefixo “0x”. Existem 2 maneiras de fazer isso. ="0x"&DEC2HEX(A1,8) resolverá o problema, mas altera o campo para um campo de texto, de modo que não pode mais ser usado facilmente em fórmulas. Outro método é usar um formato personalizado. Se você aplicar o formato personalizado "0x"@ à célula, o valor da célula ainda poderá ser usado em uma equação. Exemplos:

╔═══╦════════════════╦════════════╦═════ ══════════ ══════════════╦═══════════════╗
║ ║ A ║ B ║ ║ ║
╠═══╬════════════════╬════════════╬═════ ══════════ ══════════════╬═══════════════╣
║ 1 ║ ║ Valor ║ Fórmula correspondente ║ Formato numérico ║
║ 2 ║ Decimal ║ 11162790 ║ 11162790 ║ Geral ║
║ 3 ║ Hex ║ AA54A6 ║ =DEC2HEX(B2) ║ Geral ║
║ 4 ║ 0's iniciais ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ Geral ║
║ 5 ║ Texto 0x prefixo ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║
║ 6 ║ Prefixo de texto 0x ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ Geral ║
║ 7 ║ Use B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ Geral ║
║ 8 ║ Use B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ "0x"@ ║
║ 9 ║ Tente usar B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) * 256) ║ Geral ║
╚═══╩════════════════╩════════════╩═════ ══════════ ══════════════╩═══════════════╝


No entanto, números grandes com dígitos variados ainda podem ser difíceis de ler, por isso gosto de colocar vírgulas em números decimais e "_" em números hexadecimais. Primeiro você precisa obter os 16 bits superiores e inferiores do número. Os 16 bits superiores de um número de 32 bits podem ser recuperados com = INT( A1 / 2^16 ). A divisão por 2 ^ 16 funciona como um deslocamento de 16 bits para a direita, e o INT remove o resto fracionário. MOD pode ser usado para obter os 16 bits inferiores de qualquer número de 32 ou 64 bits; =MOD(A1, 2^16). O MOD efetivamente recupera o restante, que são os 16 bits inferiores. Aqui está uma tabela que mostra isso em ação.

╔═══╦═════════════╦═══════════════╦═════ ══════════ ═════════════════════╦═════════╗
║ ║ A ║ B ║ ║ ║
╠═══╬═════════════╬═══════════════╬═════ ══════════ ═════════════════════╬═════════╣
║ 1 ║ ║ Valor ║ Fórmula correspondente ║ Formato ║
║ 2 ║ Decimal ║ 3.098.743.209 ║ 3098743209 ║ #,##0 ║
║ 3 ║ Bytes superiores ║ B8B3 ║ =DEC2HEX(INT( B2/2^16 ), 4) ║ Geral ║
║ 4 ║ Bytes inferiores ║ 11A9 ║ =DEC2HEX(MOD( B2, 2^16 )) ║ Geral ║
║ 5 ║ Número completo ║ 0xB8B3_11A9 ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ Geral ║
║ ║ ║ ║ & "_" & DEC2HEX(MOD(B2, 2^16), 4) ║ ║
╚═══╩═════════════╩═══════════════╩═════ ══════════ ═════════════════════╩═════════╝


Aliás, tenho que agradecer muito ahttps://ozh.github.io/ascii-tables/. Usei esse link para criar as tabelas de texto ASCII. Acabei de copiar a tabela da minha planilha Excel para a seção Entrada e ela criou automaticamente o belo layout de texto Unicode.

Responder2

Se você deseja formatar uma célula para poder digitar um número decimal e exibi-lo automaticamente como um número hexadecimal, isso não é possível. Você pode formatar a célula como texto e inserir números hexadecimais diretamente (mas observe que o Excel não pode usá-los para cálculos) ou usar as funções DEC2HEX()e HEX2DEC()para converter entre base 10 e base 16.

Responder3

Se a célula a ser convertida for A1usada =DEC2HEX(A1).

Responder4

=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)

A fórmula REPT repete o "0" com base no comprimento da string hexadecimal gerada pela conversão de um decimal e no comprimento desejado da string HEX. Neste exemplo, pretendo gerar strings HEX de comprimento 4.

Em seguida, você concatena os zeros iniciais à string HEX real, gerando assim o valor HEX do comprimento desejado.

Vantagens:

  1. Fácil cópia da fórmula para outra planilha. Com apenas duas referências de células para um valor decimal, B3, para reatribuir.
  2. Os resultados desta fórmula são tratados como valores HEX pelo Excel. Você também poderia prefixar o "0x", mas não acho necessário.

Nota: Eu uso isso quando estou copiando strings HEX e elas são copiadas em comprimentos variados. Primeiro, gero uma coluna de valores decimais a partir dos valores originais, contra os quais posso executar esta fórmula.

informação relacionada