Bonjour,
j'ai besoin de comprendre 2 lignes de code
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fillColor = fillColor || 0; green = fillColor >> 8 & 0xFF;
Bonjour,
j'ai besoin de comprendre 2 lignes de code
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fillColor = fillColor || 0; green = fillColor >> 8 & 0xFF;
fillColor = fillColor || 0; est un idiome qui permet d'attribuer une valeur par défaut à une variable quand celle-ci n'est pas définie. La partie à gauche du signe || (ici fillColor lui-même) est affectée à la variable fillColor si celle-ci est évaluée à true (donc tout ce qui n'est pas 0, -0, null, false, NaN, undefined ou une chaîne vide). Dans le cas contraire la valeur à droite de || est affectée à la variable.
La deuxième ligne sert à extraire la valeur de la composante verte d'une couleur. Elle nécessite de connaître un peu les opérations sur les bits.
Une couleur RVB est représentée par 3 octets (1 pour chaque composante) par exemple D0BB62 en hexadécimal (R=D0, V=BB, B=62).
Ce qui donne en binaire: 1101 0000 1011 1011 0110 0010. (8 bits par composante)
>> est un opérateur de décalage de bit vers la droite, donc >> 8 décale de 8 bits vers la droite (les bits de droite sont alors propulsés dans le néant), on obtient:
1101 0000 1011 1011. Ainsi on se débarrasse de la composante bleu.
L'opérateur & est un ET logique sur les bits. FF en hexadécimal correspond à 1111 1111 en binaire. On pose donc l'opération:
Code txt : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1101 0000 1011 1011 & 0000 0000 1111 1111 // j'ai comblé avec des 0 pour faire plus joli ----------------------------- 0000 0000 1011 1011
et voilà, terminée la composante rouge, il ne reste plus que le vert: 1011 1011 soit BB en hexadécimal.
(À noter que la précédence des opérateurs fait que le calcul est effectué comme ça: (fillColor >> 8) & 0xFF et non comme ça fillColor >> (8 & 0xFF))
Brachygobius xanthozonus
Ctenobrycon Gymnocorymbus
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager