¿Cómo formatear una celda de Microsoft Excel 2007 en hexadecimal?

¿Cómo formatear una celda de Microsoft Excel 2007 en hexadecimal?

Me gustaría formatear una celda en Microsoft Excel 2007 en hexadecimal pero no encuentro cómo hacerlo.

¿Existe alguna forma integrada de cambiar la base de 10 a 16 para una celda?

Respuesta1

Como se mencionó anteriormente, la fórmula =DEC2HEX(A1) se convierte a hexadecimal y DEC2HEX(A1,8) se convierte a hexadecimal con prefijo 0 para indicar 32 bits. Si bien agregar los 0 iniciales hace que los números sean más legibles, especialmente si usa una fuente de punto fijo, las versiones hexadecimal y decimal pueden confundirse cuando todos los dígitos del número son del 0 al 9 (por ejemplo, 327701=50015).

Una mejora es agregar el prefijo "0x". Hay 2 formas de hacer esto. ="0x"&DEC2HEX(A1,8) funcionará, pero cambia el campo a un campo de texto, por lo que ya no se puede usar fácilmente en fórmulas. Otro método es utilizar un formato personalizado. Si aplica el formato personalizado "0x"@ a la celda, el valor de la celda aún se puede usar en una ecuación. Ejemplos:

╔═══╦════════════════╦════════════╦═════ ══════════ ══════════════╦═══════════════╗
║ ║ A ║ B ║ ║ ║
╠═══╬════════════════╬════════════╬═════ ══════════ ══════════════╬═══════════════╣
║ 1 ║ ║ Valor ║ Fórmula correspondiente ║ Formato numérico ║
║ 2 ║ Decimal ║ 11162790 ║ 11162790 ║ General ║
║ 3 ║ Hexadecimal ║ AA54A6 ║ =DEC2HEX(B2) ║ General ║
║ 4 ║ 0 a la izquierda ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ General ║
║ 5 ║ Prefijo de texto 0x ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║
║ 6 ║ Prefijo de texto 0x ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ General ║
║ 7 ║ Usar B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ General ║
║ 8 ║ Utilice B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ "0x"@ ║
║ 9 ║ ¡Intenta usar B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) * 256) ║ General ║
╚═══╩════════════════╩════════════╩═════ ══════════ ══════════════╩═══════════════╝


Sin embargo, los números grandes con diferentes dígitos aún pueden ser difíciles de leer, por lo que me gusta poner comas en números decimales y "_" en números hexadecimales. Primero necesitas obtener los 16 bits superiores e inferiores del número. Los 16 bits superiores de un número de 32 bits se pueden recuperar con = INT( A1 / 2^16 ). Dividir entre 2^16 actúa como un desplazamiento a la derecha de 16 bits y INT elimina el resto fraccionario. MOD se puede utilizar para obtener los 16 bits inferiores de cualquier número de 32 o 64 bits; =MOD(A1, 2^16). El MOD efectivamente recupera el resto, que son los 16 bits inferiores. Aquí hay una tabla que muestra esto en acción.

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


Por cierto, tengo que darle las gracias ahttps://ozh.github.io/ascii-tables/. Utilicé ese enlace para crear las tablas de texto ASCII. Simplemente copié la tabla de mi hoja de cálculo de Excel en su sección Entrada y automáticamente creó el bonito diseño de texto Unicode.

Respuesta2

Si desea formatear una celda para que pueda escribir un número decimal y que se muestre automáticamente como un número hexadecimal, entonces eso no es posible. Puede formatear la celda como texto e ingresar números hexadecimales directamente (pero tenga en cuenta que Excel no puede usarlos para cálculos) o usar las funciones DEC2HEX()y HEX2DEC()para convertir entre base 10 y base 16.

Respuesta3

Si se A1utiliza la celda que se va a convertir =DEC2HEX(A1).

Respuesta4

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

La fórmula REPT repite el "0" según la longitud de la cadena hexadecimal que se genera al convertirla de un decimal y la longitud deseada de la cadena HEX. En este ejemplo, busco generar cadenas HEX de longitud 4.

Luego concatena los ceros iniciales con la cadena HEX real, generando así el valor HEX de la longitud deseada.

Ventajas:

  1. Fácil copia de la fórmula a otra hoja de trabajo. Con sólo dos referencias de celda a un valor decimal, B3, para reasignar.
  2. Excel trata los resultados de esta fórmula como valores HEX. También puede anteponer el "0x", pero no lo encuentro necesario.

Nota: Utilizo esto cuando copio cadenas HEX y se copian en diferentes longitudes. Primero genero una columna de valores decimales a partir de los valores originales con los que luego puedo ejecutar esta fórmula.

información relacionada