9
votes

Comment convertissent-ils la décimale à hexadécimale si rapide (à l'esprit)?

J'ai observé quelques ingénieurs inversés, ils convertissent une décimale à l'esprit hexadécimal si rapidement. C'est tout simplement incroyable. Je n'ai jamais eu la chance de leur demander. Personnellement, je le suce vraiment cette conversion et j'utilise toujours une calculatrice pour la conversion.

Je me demandais s'il y a une sorte de coupe courte pour cette conversion?

Je pense surtout pour un ingénieur inversé et un programmeur de faible niveau (assemblage, intégré). C'est un grand avantage s'il peut compter, ajouter, soustraire et penser en termes d'hexagonale au lieu de décimale. Si vous avez des conseils pour cela, veuillez partager votre part.


4 commentaires

Si vous faites quelque chose tout le temps, vous ferez finalement mieux et plus vite le faire


Décimale à hexagonale ou hexagone à décimale? Ce dernier est un peu plus facile avec la construction d'une table de 16 * chiffres dans votre esprit. Le premier est surtout mémorisé et la mise en cache des résultats. (En fait, au fil du temps, ils démontent des instructions communes codées dans Hex à la volée)


@Mehradad AFSHARI: (En fait, au fil du temps, ils démontent des instructions communes codées dans Hex à la volée) très vrai! J'ai été témoin de ça aussi. J'ai été totalement choqué!


Essayez de vous rappeler comment vous avez appris la table de multiplication à l'école. Au début, c'était tellement difficile. C'est la même chose: les valeurs communes sont apprises par les répétitions et les valeurs importantes sont converties avant.


3 Réponses :


2
votes

http://quaSnick.net/geek_stuff/hex2dec.html

Voici la procédure. Le repos est des maths. Si vous pouvez faire des multiplications et des divisions à la volée, vous ne devriez pas avoir de problèmes pour convertir la décimale en hexagone ou à Vise Versa.


2 commentaires

Qu'est-ce que c'est? Vous venez de vous inscrire et répondit ma question?


Lien brisé. Collez la réponse ici à la place



7
votes

Vous devez connaître les conversions de base 0-16, 0x0-0XF et 0B0-0B1111 Conversions de Hart.

Le reste que vous apprenez avec la répétition. Les comportements sont souvent répétés à regarder.

multiples:

  • 1024 (1k) est 0x400
  • (1024 * 1024) 1048567 (1M) est 0x100000
  • Multiplier avec 4 pour obtenir la taille de 4m comme 0x400000.

    similaire pour les positions de bits, vous pouvez apprendre les valeurs décimales

    • Le MSB d'un mot 16 bits est 0x8000 ou 32768 ou 32K
    • Ainsi, le bit suivant a une valeur est 0x4000 ou 16384 ou 16k

      Ces motifs répètent partout et avec le temps, vous commencerez à les apprendre.

      Si vous avez une représentation binaire, il est facile de regrouper les bits en groupe de quatre et de convertir rapidement en une représentation binaire.

      Le seul moyen réaliste de trouver la valeur décimale 0xa1b587de est d'utiliser une calculatrice (ou d'être incroyablement bonne en maths). Mais la limite 1K la plus proche de 0xA1B587DE est 0xA1B58400, ce qui est facile si vous connaissez les motifs.

      de vos commentaires sur opcode:
      Pour les processeurs RISC, la plupart des instructions Les premiers bits d'instruction définissent la famille d'instructions (MOV, saut et, ou, ...) et le reste est simplement des paramètres. Si vous travaillez suffisamment avec un processeur, vous commencerez à les apprendre.


2 commentaires

100 décimale est 0x64, tandis que 0x100 est 256 également utile si vous regardez les octets. Et vous devez savoir ce que sont les bits simples: 0x80, 0x40, 0x20, 0x10. Sinon, la pratique vous rend meilleur.


Aussi peu d'erreur là-haut. 0x10000 est 64k, pas 1meg. C'est 0x100000, à savoir. 5 zéros. Bien que j'ai tendance à y penser comme 0x1_0000 comme 64k et 0x10_0000 en tant que MEG.



3
votes

Il est assez simple une fois que vous comprenez la base des systèmes de numérotation impliqués. Hexadecimal est la base 16 - Donc, 1 (déc) = 0x01; Mais 16 (déc) = 0x10.

Chaque fois que vous voyez un nombre décimal, disons, 39:

Divisez-le de 16 et prenez simplement le quotient - c'est 2 (2 * 16 = 32) Le reste est de 7 (39 à 32)

La valeur hexagonale de Decimal 39 est donc: 0x27.

Maintenant, convertissez-le en décimal: 0x27 = 2 * 16 + 7 = 39 décimal :)

J'espère que vous avez eu l'idée !!


0 commentaires