2012-09-26 17:14:51 +0000 2012-09-26 17:14:51 +0000
27
27

Hoe maak ik een cel in Microsoft Excel 2007 op in hexadecimaal?

Ik wil een cel in Microsoft Excel 2007 in hexadecimaal formatteren, maar kan niet vinden hoe ik dit moet doen.

Is er een ingebouwde manier om de basis te veranderen van 10 naar 16 voor een cel?

Antwoorden (6)

20
20
20
2017-04-20 01:48:01 +0000

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.
16
16
16
2012-09-26 17:24:39 +0000

Als je een cel zo wilt opmaken dat je een decimaal getal kunt intypen en dit automatisch wordt weergegeven als een hexadecimaal getal, dan is dat niet mogelijk. Je kunt de cel opmaken als tekst en hexadecimale getallen direct invoeren (maar merk op dat Excel deze niet kan gebruiken voor berekeningen), of de DEC2HEX() en HEX2DEC() functies gebruiken om te converteren tussen basis 10 en basis 16.

7
7
7
2012-09-26 17:20:16 +0000

Als de cel die moet worden geconverteerd A1 is, gebruik dan =DEC2HEX(A1).

4
4
4
2013-12-31 03:16:44 +0000

Als u wiskundige bewerkingen moet uitvoeren op getallen die naar hex zijn omgezet, zet u ze eerst om naar decimaal, voert u de bewerking uit en zet u ze dan terug om naar hex.

Bijvoorbeeld, als cel A1 een hex getal heeft, zoals zou worden gecreëerd met deze formule:

=DEC2HEX(17)

dat zou worden weergegeven als 11, en cel A2 formule heeft:

=DEC2HEX(165)

die zou worden weergegeven als A5, en u wilt ze bij elkaar optellen, dan zou deze formule het gewenste resultaat opleveren:

=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))

die zou worden weergegeven als B6

1
1
1
2018-07-25 14:35:12 +0000
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)

De REPT formule herhaalt de “0” op basis van de lengte van de hex string die wordt gegenereerd door deze om te zetten van een decimaal, en de gewenste lengte van de HEX string. In dit voorbeeld wil ik HEX strings genereren met een lengte van 4.

Je voegt dan de voorloopnullen samen met de eigenlijke HEX string, en genereert zo de HEX waarde met de gewenste lengte.

Voordelen:

  1. Gemakkelijk kopiëren van de formule naar andere werkbladen. Met slechts twee celverwijzingen naar een decimale waarde, B3, om opnieuw toe te wijzen.
  2. De resultaten van deze formule worden door Excel behandeld als HEX waarden. Je zou ook de “0x” kunnen voorvoegsel, maar ik vind dat niet nodig.

Opmerking: Ik gebruik deze formule wanneer ik HEX strings kopieer en deze worden gekopieerd met verschillende lengtes. Ik genereer eerst een kolom van decimale waarden van de originele waarden waarmee ik dan deze formule kan uitvoeren.

0
0
0
2017-01-19 19:55:02 +0000

Hier is een oplossing die ik gevonden heb om ervoor te zorgen dat ik deze hex getallen in HTML formaat kan formatteren:

SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))