Convertir números negativos al sistema de números hexadecimales

0

Estaba programando en 8051 y enfrenté este problema, tuve que convertir el número -10000 a hexadecimal (2 bytes) la respuesta es 0D8h = #HIGH (-10000)  0F0h = BAJO (-10000) pero ¿cómo se encontró / computó la respuesta?

    
pregunta layla

1 respuesta

2

No tengo idea de cómo llegaron a 0x0D8, ¿quizás un error tipográfico? 0x0D8 es solo 12 bits, no 16, y su bit inicial es 0, por lo que es un número positivo.

Una forma es hacer la conversión es el clásico: convertir 10'000 a hex: 0x2710. Ahora invierte todos los bits: 0xD8EF. Finalmente agregue 1: 0xD8F0.

Otra forma es comenzar con 0x0000 y restar 1 (o agregar 0xFFFF) por 10'000 veces (o restar 10'000 de una vez, si puede hacerlo). El resultado es el mismo: 0xD8F0.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas