Jak wspomniano wcześniej, formuła =DEC2HEX(A1) konwertuje na zapis szesnastkowy, a DEC2HEX(A1,8) konwertuje na zapis szesnastkowy z prefiksem 0 oznaczającym 32 bity. Podczas gdy dodanie początkowych 0 czyni liczby bardziej czytelnymi, szczególnie jeśli używasz czcionki stałoprzecinkowej, wersja heksadecymalna i dziesiętna mogą się mieszać, gdy wszystkie cyfry w liczbie są 0-9 (np. 327701=50015).
Ulepszeniem jest dodanie prefiksu “0x”. Istnieją dwa sposoby, aby to zrobić. =“0x”&DEC2HEX(A1,8) zrobi to, ale zmieni pole na pole tekstowe, więc nie może już być łatwo używane w formułach. Inną metodą jest użycie formatu niestandardowego. Jeśli zastosujesz format niestandardowy “0x”@ do komórki, to wartość komórki może być nadal używana w równaniu. Przykłady:
╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ 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 ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
Jednak duże liczby ze zmieniającymi się cyframi mogą być nadal trudne do odczytania, więc lubię wstawiać przecinki do liczb dziesiętnych i “@” do liczb szesnastkowych. Najpierw musisz uzyskać górne i dolne 16 bitów liczby. Górne 16 bitów liczby 32-bitowej można uzyskać za pomocą = INT( A1 / 2^16 ). Dzielenie przez 2^16 działa jak przesunięcie w prawo o 16 bitów, a INT usuwa resztę ułamkową. MOD może być użyty do uzyskania dolnych 16 bitów dowolnej 32- lub 64-bitowej liczby; =MOD(A1, 2^16). MOD efektywnie dostaje z powrotem resztę, czyli dolne 16 bitów. Oto tabela, która pokazuje to w działaniu.
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ 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, muszę złożyć wielkie podziękowania dla https://ozh.github.io/ascii-tables/ . Użyłem tego linku do stworzenia tabel tekstowych ASCII. Po prostu skopiowałem tabelę z mojego arkusza Excela do sekcji Input i automatycznie utworzyłem ładny układ tekstu unicode.