Zoals eerder vermeld, converteert de formule =DEC2HEX(A1) naar hex, en DEC2HEX(A1,8) converteert naar hex met 0 voorloopgetal om 32 bits aan te geven. Hoewel het toevoegen van de eerste 0’s de getallen leesbaarder maakt, vooral als je een fixed point font gebruikt, kunnen de hex en decimale versies door elkaar gehaald worden als alle cijfers in het getal 0-9 zijn (bijv. 327701=50015).
Een verbetering is om het “0x” voorvoegsel toe te voegen. Er zijn 2 manieren om dit te doen. =“0x”&DEC2HEX(A1,8) doet de truc, maar het verandert het veld in een tekstveld, zodat het niet meer gemakkelijk in formules kan worden gebruikt. Een andere methode is om een aangepaste opmaak te gebruiken. Als u de aangepaste opmaak “0x”@ toepast op de cel, dan kan de waarde van de cel nog steeds worden gebruikt in een vergelijking. Voorbeelden:
╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ 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 ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
-
Grote getallen met variërende cijfers kunnen echter nog steeds moeilijk te lezen zijn, dus ik vind het prettig om komma’s in decimale getallen te zetten en “_"s in hex getallen. Eerst moet je de bovenste en onderste 16 bits van het getal krijgen. De bovenste 16 bits van een 32-bits getal kunnen worden verkregen met = INT( A1 / 2^16 ). Delen door 2^16 werkt als een verschuiving van 16 bits naar rechts, en INT verwijdert de fractionele rest. MOD kan worden gebruikt om de onderste 16 bits van een 32- of 64-bits getal te krijgen; =MOD(A1, 2^16). De MOD krijgt effectief de rest terug, dat zijn de onderste 16 bits. Hier is een tabel die dit in actie laat zien.
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ 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, ik moet mijn grote dank uitspreken aan https://ozh.github.io/ascii-tables/ . Ik heb die link gebruikt om de ASCII tekst tabellen te maken. Ik heb gewoon de tabel uit mijn excel spreadsheet gekopieerd naar de Input sectie en het maakte automatisch de mooie unicode tekst layout.