• imprimer
  • aide

Forum de discussions « Modélisation - Algorithmique »

Retrouvez les publications relatives à ces discussions dans notre rubrique algorithmique et méthodes.

Code binaire - pour moi c'est difficile à comprendre

liste des forums liste des discussions Participer à la discussion

Photo de waterreedshimmer Message publié le vendredi 30 avril 2010 - 15h49 par waterreedshimmer.
Bonjour,

Je fais des cours par correspondance dont j'ai dû mal à comprendre comment la réponse du corrigé a été obtenue.

Si vous pouviez m'expliquiez comment on calcule le code hexadécimal des couleurs quand on veut faire varier un pourcentage d'une couleur ? Il s'agit d'un exercice sur la couleur rouge où il faut mettre toutes les nuances de rouge de 10 en 10%. J'aimerais avoir une explication explicite et pas abstraite, je ne comprends pas du tout le 256*.1 ??? ça signifie quoi ? C'est quoi le sens ? Comment penser ? Et c'est quoi la relation entre 25.6 et 1A ?

Exercice sur les couleurs:

#rrvvbb r= rouge, v= vert, b= bleu. Chacune des 3 couleurs a 256 nuances. Et 256 -> 2 chiffres.

#000000 = noir jusqu'à #FFFFFF = blanc

On s'intéresse aux valeurs du rouge rr ( #rrvvbb) de 0 à 100%.

#000000
#1A0000

?? 256*.1=25.6=#1A

Corrigé (code source sans l'HTML):

0%: font color="#000000"
10% : 256*.1=25.6=#1A font color="#1A0000"
20% : 256*.2 =51.2 = #33 font color="#330000"
30% : 256*.3 =76.8 = #4D font color="#4D0000"
40% : 256*.4 =102.4 = #66 font color="#660000"
50% : 256*.5 =128 = #80 font color="#800000"
60% : 256*.6 =153.6 = #9A font color="#9A0000"
70% : 256*.7 =179.2 = #B3 font color="#B30000"
80% : 256*.8 =204.8 = #CD font color="#CD0000"
0% : 256*.9 =230.4 = #E6 font color="#E60000"
le maximum font color="#FF0000"
Photo de pchlj Message publié le vendredi 30 avril 2010 - 17h53 par pchlj. www.dragon-gift.com - Cherche boulot région le mans :)
salut

déjà moi là je vois pas le rapport entre ce dont tu parles et le binaire.. là t'es dans l'hexa ;)

bon après...

256*.1 = 25.6 bah oui c'est logique c'est juste mathématique... en clair ça fait 256 * 0.1 = 25.6 là tu dois mieux comprendre déjà

ensuite faut savoir que le code hexadecimal.. celui qui donne 1A correspond à des valeurs d'entier normale

0 = 00
1 = 01 etc sauf que 10 = 0a puis comme ça jusqu'à E et après on attaque 11 12 13 14 etc jusqu'à 1A
et en fait 25 = 19 et 26 = 1A on suppose donc qu'on prend l'entier correspondant à la règle d'arrondi (0 à 0.4 entier inférieur et 0.5 à 0.9 entier supérieur) donc pour 25.6 ... 26
pour 51.2 on prend 51 = 33
76.8 donc 77 = 4D

etc... bref voici un lien vers une page te donnant un tableau des correspondances pour mieux comprendre..

[url= http://www.commentcamarche.net/contents/base/ascii.php3] [url]http://www.commentcamarche.net/contents/base/ascii.php3 [/URL]
Photo de Force4 Message publié le vendredi 30 avril 2010 - 17h57 par Force4. Les oiseaux ont des ailes pour voler, et moi j'ai un coeur pour aimer. ♥
Bonjour,

Je vais essayer de répondre à tes questions dans l'ordre.

Chacune des trois couleurs est codée sur 1 octet, donc 8 bits.
Dans un premier temps on peut redémontrer le nombre de valeurs que ces 8 bits nous permettent de stocker :
1 bit permet de stocker 2 valeurs différentes (2 puissance 1),
2 bits permettent de stocker 4 valeurs différentes (2 puissance 2),
...
8 bits permettent de stocker 2 puissance 8, soit 256 valeurs différentes. C'est à dire, finalement, un nombre entre 0 et 255 compris.

Ce nombre, entre 0 et 255, on peut le représenter de plein de manières différentes. On peut le représenter en décimal, en binaire, en héxadécimal... de façon générale dans n'importe quelle base numérique quelconque.

Par exemple, je prends les nombres 26, 128, et 255 ; représentés respectivemment en décimal, binaire puis hexidécimal, on a :
026 = 00011010 = 1A
128 = 10000000 = 80
255 = 11111111 = FF

Maintenant qu'on sait tout cela, on peut résoudre ton problème. Faisons cela d'abord en décimal !
On cherche 10% de 256, en décimal, facile 25.6 (on a fait l'opération de ton professeur : 256 multiplié par 0.1) ! On traite qu'avec des nombres entiers, donc ton professeur a légitimement arrondi au nombre 26 de façon implicite.
Comme la division est un peu plus compliquée à faire en hexdécimal, on va tout simplement chercher à convertir de la base 10 à 16 le nombre 26. Avec un peu de pratique, tu trouveras vite la réponse de tête, qui est 1A.
Pour le vérifier tu peux traduire chaque nombre de la base 10 à la base 16 en partant de 0 jusqu'à 26 :

Décimal = Hexadécimal 0 = 00 1 = 01 2 = 02 3 = 03 4 = 04 5 = 05 6 = 06 7 = 07 8 = 08 9 = 09 10 = 0A 11 = 0B 12 = 0C 13 = 0D 14 = 0E 15 = 0F 16 = 10 17 = 11 18 = 12 19 = 13 20 = 14 21 = 15 22 = 16 23 = 17 24 = 18 25 = 19 26 = 1A
Cordialement,

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions