Hoe negatief hexadecimaal om te zetten naar decimaal

Hallo Ik wil weten hoe het mogelijk is om een ​​hexadecimale negatieve waarde om te zetten (om gemakkelijk te vullen) tot decimaal, gemakkelijk zonder hexadecimaal naar binair te converteren en vervolgens elk bit te vermenigvuldigen met een vermogen van 2 en alle waarde om te krijgen Het resultaat, het kost te veel tijd:
Voorbeeld van nummer (32 bits): 0xFFFFFE58

Dus hoe kan ik het doen?


Antwoord 1, Autoriteit 100%

zonder een computer te gebruiken, kunt u deze als volgt berekenen:

0xFFFF FE58 = - 0x1A8 = -(1 * 16² + 10 * 16 + 8) = -(256 + 160 + 8) = -424

0xFFFF FE58is een negatief getal in de aanvulling van 2. Om de absolute waarde te krijgen, moet je alle bits omkeren en 1 in binair toevoegen. U kunt dit nummer ook aftrekken van het eerste nummer buiten bereik (0x1 0000 0000)

0x100000000
-0x0FFFFFE58
      =
 0x0000001A8

Nu weten we dat uw nummer -0x1A8is. Nu moet u de cijfers vermenigvuldigd met hun plaatswaarde toevoegen. 8 * 16 ^ 0 + A (dat is 10) * 16 ^ 1 + 1 * 16 ^ 2 = 424. Dus de decimale waarde van uw nummer is -424.


Antwoord 2

Maak een berekening op het positieve nummer en zet vervolgens naar het negatieve met de aanvulling van twee.

Zie hier uitleg voor een positieve conversie van Hexa naar Decimal:

http://www.permadi.com/tutorial/numhextodec/

eigenlijk:

  1. Krijg het meest cijfer van het HEX-nummer, bel dit cijfer aan de stroom.
  2. Maak een variabele, laten we het noemen. Stel de waarde in op 0.
  3. Vermenigvuldig het huidige cijfer met (16 ^ Power), bewaar het resultaat.
  4. Vermogen van 1.
  5. Stel de stroomdigitaliseer in het vorige cijfer van het HEX-nummer.
  6. Herhaal van stap 3 totdat alle cijfers zijn vermenigvuldigd.
  7. som het resultaat van stap 3 om het antwoordnummer te krijgen.

Other episodes