Besoin d'aide Binaire - Hexadecimale

Bonjour j'etais en train de lire sur eskimon la theorie dans le chapitre <>:

http://eskimon.fr/89-arduino-102-quelques-bases-elementaires

et j'etais rendu a la partie binaire - hexadecimale mais je n'y ai rien comprit quelqu'un pourrait me resumer/m'expliquer en autre mot ce que cela signifie

Merci et bonne journnee :slight_smile:

bonjour,
chaque caractère peut être traduit en binaire ou hexa.

Décimal Octal Hex Binaire Caractère


048 060 30 00110000 0
049 061 31 00110001 1
050 062 32 00110010 2
051 063 33 00110011 3
052 064 34 00110100 4
053 065 35 00110101 5
054 066 36 00110110 6
055 067 37 00110111 7
056 070 38 00111000 8
057 071 39 00111001 9

Bonjour et bienvenue,

Les systèmes binaire et hexadécimal sont principalement utilisés pour représenter un nombre sous différentes formes. Qu'il soit écrit en notation binaire, en hexadécimal ou en décimal, c'est toujours le même nombre, juste représenté différemment dans ton code, pour plus de lisibilité.

Exemple, pour une couleur, on va utiliser la notation hexadécimale, de façon à pouvoir facilement ajuster chaque octet si besoin.

0xFF0000FF

si le format est RGBA alors on devine que cette couleur est du rouge.
alors qu'avec la notation décimale de cette même couleur

4278190335

, on ne peut pas deviner la couleur...

Ou si on veut assigner une valeur précise à certains bits d'une variable, on utilisera la notation binaire.

0b11011000

ici on voit l'Ă©tat des bits, on peut facilement les modifier

216

lĂ  on ne voit rien, et il faut modifier le nombre complet si on veut changer un bit.

En résumé, c'est utile pour les humains, la machine y est complètement indifférente.

Il faut distinguer le nombre de sa représentation humaine.
Aussi point important :
un chiffre c'est 1 seul caractère
un nombre est formé de chiffres

Il existe plusieurs systèmes de représentation et le décimal qui nous parait évident est l'un des derniers apparus.
Le système décimal n'existait encore pas que le temps était déjà exprimé en numérotation sexagésimale ( 60 minutes dans 1 h et 60 secondes dans 1 mn).

En programmation le système de base est le système à base 2 qui comprend 2 éléments au choix de la dénomination choisie:
vrai ou faux
1 ou 0.
Toujours en programmation nous sommes guidé par les puissance de 2.
Un octet est une représentation du système à base 8.
Comment cela fonctionne :
Dans un système octal (dit à base 8 par abus de langage) on dispose de 8 caractères pour écrire un nombre.
Attention ce ne sont pas 1,2,3,4,5,6,7,8 mais 0,1,2,3,4,5,6,7-> le caractère "8" ne fait pas partie du système octal !
Une fois qu'on est arrivé au caractère supérieur c'est à dire 7 comment fait-on ?
En fait on prend le premier des 8 caractères c'est à dire "0" que l'on fait suivre de tous les autres caractères.
0 c'est 00
1 c'est 01
2 c'est 02
..............
7 c'est 07
Et bien continuons après 0 il vient 1
10
11
........
16
17
20 ** --> rappel le caractère 8 n'existe pas dans le système octal**

Il faut oublier le système décimal et cesser de penser que la signification de 10 est immuable.

Dans un système de numérotation la base s'écrit toujours 1 suivi d'un 0 : attention on ne doit pas dire "dix" mais prononcer séparément "un" ,"zéro" en deux mots.
Dix est exclusivement réservé au système décimal et à lui seul..

Une fois que tu as compris cela, et que tu cesse de raccrocher sans cesse sur le système décimal, c'est extensible à n'importe quelle base.
Et notamment à la base hexadécimale (toujours dite base16 par abus de langage).
J'ai pris un exemple avec une base 8 par simplification mais dans notre alphabet nous ne disposons que de 10 chiffres pour représenter des nombres. Pour le système hexadécimal il en faut 16, il a donc fallu ajouter des caractères.
Par convention (ce n'est qu'une convention) les caractères manquants ont été pris parmi les lettres.
En base hexadécimale on dispose des 16 caractères suivants :
0, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E , F
et donc après 9 vient A , après F vient 10 et après 1F vient 20 , après FF vient 100.