Systèmes de numération

 

Système décimal:

Quand on lit le nombre décimal 1024 par exemple, cela signifie

1 millier soit 1x10exp3

0 centaine soit 0x10exp2

2 dizaines soit 2x10exp1

4 unités soit 4x10exp0

 

la base est 10

et on a bien 1x10exp3+ soit 0x10exp2+ soit 2x10exp1+ soit 4x10exp0=1024

Avec MPASM on l'écrit d'1024'

 

Système binaire:

La base est 2

Quand on lit le nombre binaire 1101 par exemple, cela signifie

1x2exp3 soit 1x8

1x2exp2 soit 1x4

0x2exp1 soit 0x2

1x2exp0 soit 1x1

la valeur en décimal de ce nombre binaire est donc 1x8+1x4+0x2+1x1=13

Avec MPASM on l'écrit b'1101'

 

Système hexadécimal:

La base est 16, il a fallu créer 6 chiffres nouveaux: A, B, C, D, E et F

 

Décimal hexadécimal Binaire
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

 

Quand on lit le nombre hexadécimal 1F0A par exemple, cela signifie

1x16exp3 soit 1x4096

Fx16exp2 soit 15x256

0x16exp1 soit 0x16

Ax16exp0 soit 10x1

 

la valeur en décimal de ce nombre binaire est donc 1x4096+15x256+0x16+10x1=7946

Avec MPASM on l'écrit h'1f0a' ou h'1F0A'

 

la valeur binaire est plus simple à trouver, il suffit de juxtaposer les chiffres exprimés en binaire:

0001 1111 0000 1010 soit 1111100001010 puisque comme en décimal, les zéros à gauche ne sont pas significatifs

 

Un nombre binaire de 8 chiffres correspond parfaitement à l'état des huit bits d'un registre, ou d'une mémoire moyennant la convention suivante:

Un nombre binaire long est difficile à lire, on préfère l'écrire sous forme hexadécimale ce qui est d'autant plus facile à faire qu'il suffit de juxtaposer les représentations:

par exemple:

3F correspond à 00111111 (0011 collé à 1111)

72 correspond à 01110010 (0111 collé à 0010)

 

Nombres binaires négatifs:

Si l'on se limite aux nombres positifs, un nombre binaire de 8 chiffres peut aller de

0000 0000 à 1111 1111 soit 00 à FF en hexadécimal et 0 à 255 en décimal

Si l'on veut aussi des nombres négatif, tout en restant sur huit bits, on adopte une autre notation mais qui limite à la plage -128 +127:

Le bit 7 de poids le plus fort sert pour le signe:

Mais ce n'est pas tout:

Pour passer d'un nombre positif à un nombre négatif, et réciproquement, la procédure est la suivante:

On inverse tous les bits du nombre: les 0 deviennent des 1, les 1 deviennent des 0, et on ajoute 1 au résultat (en faisant jouer les retenues, voir plus bas)

Exemple: 0000 0110 correspond à +6

On inverse: 1111 1001

On ajoute 1

Résultat 1111 1110 qui correspond à -6

 

Opérations en binaire:

Addition:

Il faut savoir que

L'addition se fait donc comme en décimal, avec les retenues:

Soustraction:

Cela ne marche qu'en nombres signés, on ramène la soustraction à l'addition d'un nombre négatif

 

Algèbre de Boole:

Ces fonctions s'appliquent bit à bit, quand elles portent sur deux nombres de 8 chiffres par exemple, la fonction agit indépendamment sur les bits 7 des deux nombres, sur les bits 6, etc

 

Fonction PAS (NOT):

Elle transforme les 0 en 1 et les 1 en 0

PAS(0110)=1001

 

Fonction ET (AND):

Le résultat est à 1 si le bit A ET le bit B sont à 1

On en tire le tableau de vérité:

A B A ET B
0 0 0
0 1 0
1 0 0
1 1 1

On écrit A AND B

 

Fonction OU (OR):

Le résultat est à 1 si le bit A OU le bit B est à 1

On en tire le tableau de vérité:

A B A OU B
0 0 0
0 1 1
1 0 1
1 1 1

On écrit A OR B

 

Fonction OU exclusif (XOR):

Le résultat est à 1 si le bit A OU le bit B est à 1, mais pas les deux

On en tire le tableau de vérité:

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

On écrit A XOR B

Quelques formules:

 

PAS(A OU B)=(PAS A) ET (PAS B)

PAS(A ET B)=(PAS A) OU (PAS B)

A XOR B= A ET (PAS B) OU (PAS A) ET B

 

Retour au sommaire

© 1999-2009 A. Ducros F5AD