Ouvrir la calculatrice pour faire des choses aussi minuscules me semble ennuyeux et je crois fermement que dire «plus vous en savez, mieux c'est! alors voici je vous demande comment convertir 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 suis confus quand je passe à des nombres plus élevés comme C0 ou FB
Quelle est la formule (cérébrale, non fonctionnelle) que vous utilisez?
Si vous considérez que l'hexadécimal est la base 16, c'est en fait assez simple:
Commencez par le chiffre le moins significatif et travaillez vers le plus significatif (de droite à gauche), multipliez le chiffre par une puissance croissante 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
Alors,
0xFB = 11 + (15 * 16) = 251
Ce n'est pas la formule… ce n'est même pas un peu comme la formule….
La formule est la suivante:
X * 16 ^ y où X est le nombre à convertir et y la position du nombre (de droite à gauche).
Donc .. si vous voulez convertir DA145 en décimal, ce 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
F - 14
F - 15
J'ai à peu près cessé de le faire lorsque j'ai découvert que les nombres hexadécimaux sur lesquels je travaillais étaient 32 bits. Pas beaucoup de plaisir là-bas.
Pour des nombres plus petits, j'ai (éventuellement) mémorisé certains modèles: 10 = 16, 20 = 32, 40 = 64, 80 = 128 (car 100 = 256 et 80 correspond à un bit de moins). 200 = 512 Je me souviens d'une machine que j'avais l'habitude d'utiliser et dont le format de page était 512 (je ne me souviens plus de quelle machine!). 1000 = 4096 parce que c'est la taille de page d'une autre machine.
C'est à peu près tout. Au-delà, j'ajoute.
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:
Mémorisez les valeurs décimales de 20h, 40h, etc. jusqu'à E0h. (Je suppose que vous connaissez déjà 100h.) Ensuite, obtenez les valeurs décimales si d'autres nombres en ajoutant ou en soustrayant un nombre compris entre 1 et 16.
La valeur décimale sera
20h = 0x16^0 + 2x16^1 = 0x1 + 2x16 = 0 + 32 = 32
en notation décimale, ou (32)10
.
Pour 40h
en hexa nous aurons 64
en décimal, pour EOH
nous aurons 224
en décimal.
Pour déterminer la valeur décimale d'un index spécifique dans un mot, généralisée pour toutes les bases:
b^i*n
où b est la base, i est l'index dans le mot et n est la valeur numérique à l'index. Rappelez-vous ceci en vous rappelant que b, i, n = bin = est court pour binaire.
pour base2 (binaire) 1 000, obtenir la valeur où se trouve le 1:
b = base, c'est-à-dire base2: b = 2
i = index basé sur 0 dans Word, c'est-à-dire 1000, 1 est dans le 3ème index, i = 3
n = nombre indiqué dans l'index, c'est-à-dire 1000, le troisième index est 1, n = 1
oui, 2 ^ 3 * 1 = 8
pour base10 (décimal) 9 00, obtenir la valeur où se trouve le 9:
b = 10, i = 2, n = 9: 10 ^ 2 * 9 = 100 * 9 = 900
pour base16 (hexadécimal) 0x0 f 0, obtenir la valeur où se trouve le f:
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 index dans un mot, puis chaque valeur peut être additionnée pour déterminer la valeur complète du mot.
par exemple. 1001, de gauche à droite (l'ordre n'a pas d'importance dans la somme):
(2 ^ 3 * 1 = 8) + (2 ^ 2 * 0 = 0) + (2 ^ 1 * 0 = 0) + (2 ^ 0 * 1 = 1) = 9