Revenir au plan du site
Vous n'avez pas les bases?
Bien que ces cours s'adressent à des débutants, il va être difficile de lire ces cours si vous n'avez pas un minimum de culture informatique et même de façon plus large, un minimum de culture mathématique.
En assembleur comme dans d'autres langages, il est d'usage d'utiliser régulièrement d'autres bases que la base 10. La base 10, vous savez, le système décimal, enfin... ...la façon dont vous comptez tous les jours!
Dans quels cas utiliser différentes bases numériques? En fait il est plus pratique et lisible de changer de base selon le contexte :
- du binaire quand il s'agit de positionner des bits
- la base 3 pour les couleurs du CPC en Basic
- la base 10 pour les valeurs classiques, telles que des dimensions écran, ...
- la base 16 pour les adresses mémoires, car les quantités de mémoire des ordinateurs sont basées sur la taille du bus d'adresse, qui contient 16 fils pour la définir.
Comment utiliser les bases numériques? Voici un petit tableau qui montre comment compter dans chacune des bases. Pour les bases inférieures à 10, c'est assez simple, il suffit de s'arrêter avant le descripteur de la base :
- Pour la base 2 ou binaire, on peut utiliser 0 et 1
- Pour la base 3 ou 'demi-valeurs' on peut utiliser 0,1 et 2
- Pour la base 10 ou décimal on peut utiliser les chiffres de 0 à 9, vous avez l'habitude
- Pour la base 16 ou hexadécimal, on utilise de 0 à 9 puis on continue avec A,B,C,D,E et F (en majuscules ou minuscules)
Voici les premiers nombres depuis zéro jusqu'à 16, suivis de quelques valeurs 'remarquables'. Les valeurs sont affichées exprès avec un préfixe (voir
[chapitre sur les conventions])
Valeur binaire | Valeur base 3 | Valeur décimale | Valeur hexadécimale |
0x0 | 000 | 0 | #00 |
0x1 | 001 | 1 | #01 |
0x10 | 002 | 2 | #02 |
0x11 | 010 | 3 | #03 |
0x100 | 011 | 4 | #04 |
0x101 | 012 | 5 | #05 |
0x110 | 020 | 6 | #06 |
0x111 | 021 | 7 | #07 |
0x1000 | 022 | 8 | #08 |
0x1001 | 100 | 9 | #09 |
0x1010 | 101 | 10 | #0A |
0x1011 | 102 | 11 | #0B |
0x1100 | 110 | 12 | #0C |
0x1101 | 111 | 13 | #0D |
0x1110 | 112 | 14 | #0E |
0x1111 | 120 | 15 | #0F |
0x10000 | 121 | 16 | #10 |
0x100000 | ... | 32 | #20 |
0x1000000 | | 64 | #40 |
0x10000000 | Note | 128 | #80 |
0x11000000 | Il n'ya | 192 | #C0 |
0x100000000 | pas de | 256 | #100 |
0x1000000000 | préfixe | 512 | #200 |
0x10000000000 | pour la | 1024 | #400 |
0x100000000000 | base 3 | 2048 | #800 |
0x1000000000000 | | 4096 | #1000 |
0x10000000000000 | Aucun | 8192 | #2000 |
0x100000000000000 | assembleur | 16384 | #4000 |
0x1000000000000000 | ne l'utilise | 32768 | #8000 |
0x1100000000000000 | | 49152 | #C000 |
0x1111111111111111 | | 65535 | #FFFF |
0x10000000000000000 | | 65536 | #10000 |
Comme le laisse suggérer ce tableau, on voit que le binaire est rapidement illisible dès qu'on dépasse 8 bits. La base 3 n'a AUCUN intérêt dès qu'on dépasse 26.
Cependant, vous pouvez remarquer qu'à chaque fois qu'on ajoute à zéro au début d'un nombre binaire, sa valeur décimale double, car nous sommes en base 2. Voyez ça
comme un nombre décimal auquel on ajoute un zéro, sa valeur se décuple (x10) car nous sommes en... ...base 10. Enfin, quand on ajoute un zéro à un nombre
hexadécimal, sa valeur se multiplie par 16. #1,#10,#100,#1000,#10000 correspond à 1, 16, 256, 4096 et 65536. Entrainez-vous!
Le décimal et l'hexadécimal excellent dans les grands nombres, vous apprendrez rapidement les valeurs remarquables (apprenez les puissances de 2 aussi)