Antworten:
Wie bereits erwähnt, wird die Formel = DEC2HEX (A1) in hexadezimal umgewandelt, und DEC2HEX (A1, 8) wird in hexadezimal mit dem Präfix 0 umgewandelt, um 32 Bits zu bezeichnen. Durch das Hinzufügen der führenden Nullen werden die Zahlen besser lesbar, insbesondere wenn Sie eine Festkomma-Schriftart verwenden. Die hexadezimale und die dezimale Version können jedoch verwechselt werden, wenn alle Ziffern der Zahl zufällig zwischen 0 und 9 liegen (z. B. 327701 = 50015).
Eine Verbesserung ist das Hinzufügen des Präfix "0x". Hierfür gibt es zwei Möglichkeiten. = "0x" & DEC2HEX (A1,8) macht den Trick, aber es ändert das Feld in ein Textfeld, so dass es nicht mehr einfach in Formeln verwendet werden kann. Eine andere Methode ist die Verwendung eines benutzerdefinierten Formats. Wenn Sie das benutzerdefinierte Format "0x" @ auf die Zelle anwenden, kann der Wert der Zelle weiterhin in einer Gleichung verwendet werden. Beispiele:
╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣ ║ 1 ║ ║ Wert ║ Entsprechende Formel ║ Zahlenformat ║ ║ 2 ║ Dezimal ║ 11162790 ║ 11162790 ║ Allgemein ║ ║ 3 ║ Hex ║ AA54A6 ║ = DEC2HEX (B2) ║ Allgemein ║ ║ 4 ║ führende Nullen ║ 00AA54A6 ║ = DEC2HEX (B2,8) ║ Allgemein ║ ║ 5 ║ Text 0x Präfix ║ 0x00AA54A6 ║ = DEC2HEX (B2,8) ║ "0x" @ ║ ║ 6 ║ Text 0x Präfix ║ 0x00AA54A6 ║ = "0x" & DEC2HEX (B2,8) ║ Allgemein ║ (7) Verwenden Sie B5 (AA54A600) = DEC2HEX (HEX2DEC (B5) * 256) (Allgemein) (8) Verwenden Sie B5 (0xAA54A600) = DEC2HEX (HEX2DEC (B5) * 256) "0x" @ " ~ 9 ~ Versuche B6 zu benutzen ~ #NUM! ║ = DEC2HEX (HEX2DEC (B6) * 256) ║ Allgemeines ║ ╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝
╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣ ║ 1 ║ ║ Wert ║ Entsprechende Formel ║ Format ║ ≤ 2 ≤ Dezimal ≤ 3.098.743.209 ≤ 3098743209 ≤ #, ## 0 ≤ ║ 3 ║ Obere Bytes ║ B8B3 ║ = DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ Allgemein ║ (4) Lower Bytes (11A9) = DEC2HEX (MOD (B2, 2 ^ 16)) General (Allgemein) (5) Vollständige Nummer (0xB8B3_11A9) = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) Allgemein ║ ║ ║ ║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4) ║ ║ ╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝
Wenn Sie eine Zelle so formatieren möchten, dass Sie eine Dezimalzahl eingeben und diese automatisch als Hexadezimalzahl anzeigen lassen können, ist dies nicht möglich. Sie können die Zelle entweder als Text formatieren und Hexadezimalzahlen direkt eingeben (Excel kann diese jedoch nicht für Berechnungen verwenden) oder die Funktionen DEC2HEX()
und HEX2DEC()
verwenden, um zwischen Basis 10 und Basis 16 zu konvertieren.
Wenn Sie mathematische Operationen für in Hex konvertierte Zahlen ausführen müssen, konvertieren Sie diese zuerst in Dezimalzahlen, führen Sie die Operation aus und konvertieren Sie sie dann zurück in Hex.
Wenn die Zelle beispielsweise A1
eine Hex-Zahl hat, wie sie aus dieser Formel erstellt werden würde:
=DEC2HEX(17)
Dies würde als 11 angezeigt werden und die Zelle A2
hat die Formel:
=DEC2HEX(165)
A5
Dies würde angezeigt werden als , und Sie möchten sie addieren, dann würde diese Formel das gewünschte Ergebnis erhalten:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
was angezeigt würde als B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
Die REPT-Formel wiederholt die "0" basierend auf der Länge der Hex-Zeichenfolge, die durch Konvertieren von einer Dezimalzahl generiert wird, und der gewünschten Länge der HEX-Zeichenfolge. In diesem Beispiel möchte ich HEX-Zeichenfolgen der Länge 4 generieren.
Anschließend verketten Sie die führenden Nullen mit der tatsächlichen HEX-Zeichenfolge und generieren so den HEX-Wert der gewünschten Länge.
Vorteile:
Hinweis: Ich verwende diese Option, wenn ich HEX-Zeichenfolgen kopiere und diese in unterschiedlichen Längen kopiert werden. Ich erstelle aus den ursprünglichen Werten eine Spalte mit Dezimalwerten, auf die ich diese Formel anwenden kann.
Hier ist eine Lösung, die ich gefunden habe, um sicherzustellen, dass ich diese Hex-Zahlen im HTML-Format formatieren kann:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
DEC2BIN()
welche in binäre konvertiert. Verwenden Sie für Binärdateien mit fester Breite so etwas wie=TEXT(DEC2BIN(A1), "0000")