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 ?

44voto

Andre Miller Points 6713

Si l'on considère que l'hexadécimal est en base 16, c'est en fait assez facile :

Commencez par le chiffre le moins significatif en allant vers le plus significatif (de droite à gauche) et multipliez le chiffre par des puissances croissantes de 16, puis additionnez le résultat.

Par exemple :

0x12 = 2 + (1 * 16) = 18

0x99 = 9 + (9 * 16) = 153

Ensuite, rappelez-vous que A = 10, B = 11, C = 12, D = 13, E = 14 et F = 15.

Donc,

0xFB = 11 + (15 * 16) = 251

18voto

gbianchi Points 1467

Ce n'est pas la formule... ça ne ressemble même pas à la formule...

La formule est la suivante :

X*16^y où X est le nombre que vous voulez convertir et y est la position du nombre (de droite à gauche).

Donc si vous voulez convertir DA145 en décimal serait

(5 * 16^0) + (4 * 16^1) + (1 * 16^2) + (10 * 16^3) + (13 * 16^4)

Et vous devez vous rappeler que la lettre est :
A - 10
B - 11
C - 12
D - 13
E - 14
F - 15

10voto

John Saunders Points 118808

J'ai pratiquement cessé de le faire lorsque j'ai découvert que les nombres hexadécimaux avec lesquels je travaillais étaient de 32 bits. Ce n'est pas très amusant.

Pour les nombres plus petits, j'ai (éventuellement) mémorisé quelques modèles : 10 = 16, 20 = 32, 40 = 64, 80 = 128 (parce que 100 = 256, et 80 est un bit de moins). 200 = 512 Je m'en souviens à cause d'une machine que j'utilisais et dont la taille des pages était de 512 (je ne me souviens plus de quelle machine !). 1000 = 4096 parce que c'est la taille de page d'une autre machine.

également, 64=100, 32=50, B8=200

C'est à peu près tout. Au-delà de ça, j'ajoute.

7voto

Chris Lutz Points 34157

Pour mémoire, votre cerveau utilise une méthode fonctionnelle pour trouver la réponse. Voici la fonction que mon cerveau utilise pour trouver la valeur d'un nombre hexadécimal :

  1. Divisez le nombre hexadécimal en chiffres individuels.
  2. Convertir chaque chiffre en sa valeur décimale (les chiffres de 0 à 9 restent les mêmes, A est 10, B est 11, etc.)
  3. En commençant par le chiffre le plus à droite, multipliez chaque valeur par la puissance 16^X, où X est la distance par rapport au chiffre le plus à droite (ainsi, le chiffre le plus à droite est 16^0, ou 1, le suivant est 16^1, ou 16, le suivant est 16^2, ou 256, etc.)
  4. Additionnez toutes les valeurs.

3voto

Robert L Points 982

Mémorisez les valeurs décimales de 20h, 40h, et ainsi de suite, jusqu'à E0h. (Je suppose que vous connaissez déjà 100h). Obtenez ensuite les valeurs décimales d'autres nombres en ajoutant ou en soustrayant un nombre de 1 à 16.

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