2017-03-04 3 views
0

Aus dem Buch „Einführung in die Java-Programmierung, Ausgabe 10. Umfassende Version - Daniel Liang“ Kapitel 6, Seite 217.Hexadezimal Dezimal Umrechnungsformel

Aus dem Text Ich habe Schwierigkeiten beim Verständnis der Formel für hex zu dezimalen Konvertierungen.

h n * 16 n + h n-1 * 16 n-1 + h n-2 * 16 n-2 + ... + h * 16 + h * 16 + h * 16

Zum Beispiel die Hexadezimalzahl AB8C ist

10 * 16 + 11 * 16 + 8 * 16 + 12 * 16 = 43916

Ich verstehe den zweiten Teil der Formel und wie die Antwort in dem gegebenen Beispiel erreicht wurde, aber nicht den ersten Teil

h n * 16 n + h n-1 * 16 n-1 + h n-2 * 16 n-2 +

warum die Subtraktion der Hex-Zahlen und Potenzen? In dem Beispiel ist die Subtraktion nicht gemacht, also wozu?

Vielen Dank für Ihre Hilfe.

Ich bin nicht sicher, was mit meiner Frage gemeint ist, die unklar ist, gegeben T.J. Crowder konnte eine Antwort geben, die meine Verwirrung aufklärte. Ich dachte, dass der Wortlaut der Frage ziemlich klar artikulierte, was mein Problem war. Ich bin neu hier, also könnte ich etwas offensichtlich fehlen? Soll ich eine Antwort akzeptieren?

Macht nichts, bemerkte nur das Häkchen in der Nähe der Antwort.

+1

Das ist grundlegende Mathematik. Es ist keine Subtraktion von Zahlen, sondern Indizes. n steht für index. –

+3

Sie könnten dies wahrscheinlich in Mathematik Abschnitt stackexchange fragen und in der Zwischenzeit Kasse: http://www.binaryhexconverter.com/hex-to-decimal-converter – Smit

+0

@Smit Vielen Dank für den Link. Ich weiß, wie man Hexadezimalzahlen in Dezimalzahlen umwandelt, es war nur ein Verständnis für die Formel, die mich abwarf. – Arthur

Antwort

1

Die Subtraktion wird im Beispiel durchgeführt, in dem Exponenten: n die Anzahl der Stellen in der Hexadezimalzahl minus eins ist. So zum Beispiel für AB8C, n ist 3. Was die Formel sagt, ist, dass:

  • Sie A multiplizieren mit 16 angehoben n, z.B.0xA * 16^3
  • Sie multiplizieren B mit 6 erhöht auf n-1, z. 0xB * 16^2
  • Sie multiplizieren 8 mit 6 erhöht auf n-2, z.B. 0x8 * 16^1
  • Sie multiplizieren C mit 6 erhöht auf n-3, z.B. 0xC * 16^0
  • Sie fügen diese Ergebnisse zusammen

Also, wenn Sie Code schreiben würden hex zu konvertieren, in Dezimalzahlen Sie eine n und eine Schleife, und auf jeder Schleife n dekrementieren haben müssen.

+1

Danke. Machte es nur ein bisschen klarer für mich zu verstehen. – Arthur

Verwandte Themen