Wie bereits erwähnt, konvertiert die Formel =DEC2HEX(A1) in Hexadezimal, und DEC2HEX(A1,8) konvertiert in Hexadezimal mit vorangestellter 0, um 32 Bits zu kennzeichnen. Während das Hinzufügen der führenden 0 die Zahlen besser lesbar macht, insbesondere wenn Sie eine Festkommaschriftart verwenden, können die Hex- und Dezimalversionen durcheinander geraten, wenn alle Ziffern in der Zahl zufällig 0-9 sind (z. B. 327701=50015).
Eine Verbesserung ist das Hinzufügen des Präfixes “0x”. Es gibt 2 Möglichkeiten, dies zu tun: =“0x”&DEC2HEX(A1,8) erfüllt den Zweck, 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, dann kann der Wert der Zelle weiterhin in einer Gleichung verwendet werden. Beispiele:
╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬════════════╬═════════════════════════════╬═══════════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Number Format ║ ║ 2 ║ Decimal ║ 11162790 ║ 11162790 ║ General ║ ║ 3 ║ Hex ║ AA54A6 ║ =DEC2HEX(B2) ║ General ║ ║ 4 ║ leading 0's ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ General ║ ║ 5 ║ Text 0x prefix ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║ ║ 6 ║ Text 0x prefix ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ General ║ ║ 7 ║ Use B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) \* 256) ║ General ║ ║ 8 ║ Use B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) \* 256) ║ "0x"@ ║ ║ 9 ║ Try to use B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) \* 256) ║ General ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
Große Zahlen mit variierenden Ziffern können jedoch immer noch schwer zu lesen sein, daher setze ich gerne Kommas in Dezimalzahlen und “_"s in Hex-Zahlen. Zuerst müssen Sie die oberen und unteren 16 Bits der Zahl ermitteln. Die oberen 16 Bits einer 32-Bit-Zahl können mit = INT( A1 / 2^16 ) abgerufen werden. Die Division durch 2^16 wirkt wie eine Rechtsverschiebung von 16 Bits, und das INT entfernt den Bruchteil des Rests. MOD kann verwendet werden, um die unteren 16 Bits einer beliebigen 32- oder 64-Bit-Zahl zu erhalten; =MOD(A1, 2^16). Die MOD erhält effektiv den Rest zurück, also die unteren 16 Bits. Hier ist eine Tabelle, die dies in Aktion zeigt.
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬═══════════════╬════════════════════════════════════╬═════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Format ║ ║ 2 ║ Decimal ║ 3,098,743,209 ║ 3098743209 ║ #,##0 ║ ║ 3 ║ Upper Bytes ║ B8B3 ║ =DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ 4 ║ Lower Bytes ║ 11A9 ║ =DEC2HEX(MOD( B2, 2^16 )) ║ General ║ ║ 5 ║ Full Number ║ 0xB8B3\_11A9 ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ ║ ║ ║ & "\_" & DEC2HEX(MOD(B2, 2^16), 4) ║ ║ ╚═══╩═════════════╩═══════════════╩════════════════════════════════════╩═════════╝
BTW, ich muss einen großen Dank an https://ozh.github.io/ascii-tables/ aussprechen. Ich habe diesen Link benutzt, um die ASCII-Texttabellen zu erstellen. Ich habe einfach die Tabelle aus meiner Excel-Tabelle in den Eingabebereich kopiert und es wurde automatisch das schöne Unicode-Textlayout erstellt.