30 votes

Comment transformer l'hexadécimal en décimal en utilisant le cerveau ?

Ouvrir la calculatrice pour faire de si petites choses me semble ennuyeux, et je crois fermement en cet adage "plus vous en savez, mieux c'est", alors je vous demande comment convertir l'hexadécimal en décimal.

Jusqu'à ce moment-là, j'utilise la formule suivante :

Hex:        Decimal:
12          12+6
22          22+2*6
34          34+3*6
49          49+4*6
99          99+9*6

Je m'embrouille quand je passe à des numéros plus élevés comme C0 ou FB.

Quelle est la formule (cerveau, non fonctionnel) que vous utilisez ?

2voto

malik aamir Points 1

La valeur décimale sera

20h = 0x16^0 + 2x16^1 = 0x1 + 2x16 = 0 + 32 = 32

en notation décimale, ou (32)10 .

Para 40h dans l'hexa, nous aurons 64 en décimal, pour EOH nous aurons 224 en décimal.

2voto

ferr Points 155

Pour déterminer la valeur décimale d'un indice spécifique dans un mot, généralisé pour toutes les bases :

b^i*n

où b est la base, i est l'indice dans le mot, et n est la valeur numérique à l'indice. Pour s'en souvenir, il faut se rappeler que b,i,n = bin = abréviation de binaire.

Exemples :


pour la base2 (binaire) 1 000, en obtenant la valeur où se trouve le 1 :

b = base, c'est-à-dire base2 : b=2

i = index basé sur 0 dans le mot, c'est-à-dire 1000, 1 est dans le troisième index, i=3

n = nombre figurant dans l'index, par exemple 1000, le troisième index est 1, n=1

donc, 2^3*1 = 8


pour la base 10 (décimale) 9 00, en obtenant la valeur où se trouve le 9 :

b=10, i=2, n=9 : 10^2*9 = 100*9 =900


pour la base 16 (hexadécimale) 0x0 f 0, en obtenant la valeur où le f est situé :

b=16, i=1, n=15 (0-9,a-f,f=15) : 16^1*15 = 16*15 = 240


Notez que cela peut être utilisé pour déterminer la valeur de chaque indice dans un mot, puis chaque valeur peut être additionnée pour déterminer la valeur totale du mot.

par exemple 1001, de gauche à droite (l'ordre n'a pas d'importance dans la sommation) :

(2^3*1=8) + (2^2*0=0) + (2^1*0=0) + (2^0*1=1) = 9

0voto

Crumblez Points 47

Je n'ai rien trouvé d'utile, alors voici ma méthode : Le transformer en deux séries de nombres binaires pour représenter chaque lettre, puis prendre la représentation binaire entière et la convertir en décimal.

Exemple : AB

A / B

\= 1010 / 1011 en binaire

\= 171 (128 + 0 + 32 + 0 + 8 + 0 + 2 + 1) en décimal

0voto

kodkod Points 1362

Voici une autre méthode qui n'implique pas de puissances de 16 et qui peut être réalisée avec un crayon et du papier :

Commencez par le chiffre le plus à gauche. Multipliez-le par 16 et ajoutez-y le deuxième chiffre en partant de la gauche. Multipliez ensuite le résultat par 16 et ajoutez-y le troisième chiffre en partant de la gauche. Et ainsi de suite.

Par exemple, en convertissant 0x20A5 en décimal :

  2 * 16 +  0 = 32
 32 * 16 + 10 = 522   (remember that A is 10 decimal)
522 * 16 +  5 = 8357

Et le résultat de la conversion est 8 357.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X