Comme mentionné précédemment, la formule =DEC2HEX(A1) convertit en hexagone, et DEC2HEX(A1,8) convertit en hexagone avec le préfixe 0 pour indiquer 32 bits. Bien que l'ajout des 0 de tête rende les nombres plus lisibles, surtout si vous utilisez une police à virgule fixe, les versions hexagonale et décimale peuvent se mélanger lorsque tous les chiffres du nombre se trouvent être de 0 à 9 (par exemple 327701=50015).
Une amélioration consiste à ajouter le préfixe “0x”. Il y a deux façons de le faire : = “0x”&DEC2HEX(A1,8) fera l'affaire, mais il transforme le champ en champ de texte, de sorte qu'il ne peut plus être utilisé facilement dans les formules. Une autre méthode consiste à utiliser un format personnalisé. Si vous appliquez le format personnalisé “0x”@ à la cellule, alors la valeur de la cellule peut toujours être utilisée dans une équation. Exemples :
╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ 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 ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
Cependant, les grands nombres à chiffres variables peuvent toujours être difficiles à lire, c'est pourquoi j'aime mettre des virgules dans les nombres décimaux et des “_” dans les nombres hexagonaux. Vous devez d'abord obtenir les 16 bits supérieurs et inférieurs du nombre. Les 16 bits supérieurs d'un nombre de 32 bits peuvent être récupérés avec = INT( A1 / 2^16 ). La division par 2^16 agit comme un décalage à droite de 16 bits, et l'INT supprime le reste fractionnaire. Le MOD peut être utilisé pour obtenir les 16 bits inférieurs d'un nombre quelconque de 32 ou 64 bits ; =MOD(A1, 2^16 ). Le MOD récupère effectivement le reste, c'est-à-dire les 16 bits inférieurs. Voici un tableau qui montre cela en action.
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ 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, je dois remercier chaleureusement https://ozh.github.io/ascii-tables/ . J'ai utilisé ce lien pour créer les tableaux de texte ASCII. Je viens de copier le tableau de ma feuille de calcul Excel dans sa section Input et il a automatiquement créé la belle mise en page de texte unicode.