color='#FFFFFF';
var colorVal = parseInt(color.slice(1), 16);
result = {
red: colorVal >> 16 & 0xFF,
green: colorVal >> 8 & 0xFF,
blue: colorVal & 0xFF,
}
//{red:255,green:255,blue:255}
Compris >> Maj à droite signé, pourquoi avons-nous besoin de parseInt(,16) ? >>N'est-ce pas un bon décalage des données binaires ? . Ensuite, parseInt, quelle que soit la base dans laquelle il est converti. Les données binaires doivent rester inchangées.
Pourquoi déplacer 16 bits. . « FFFFFF » n'est-il pas 6 octets 48 bits ? .
parseInt('hexStr', 16) Cette phrase signifie convertir une chaîne contenant des nombres hexadécimaux en un type numérique Int en analysant les types numériques
.'FFFFFF' n'est qu'une chaîne, et l'opération de décalage à droite nécessite des nombres.
Prenons 'FFFFFF' comme exemple. Il n'y a pas de F en dessous de l'hexadécimal, c'est donc NaN. Le report est différent pour les valeurs au-dessus de l'hexadécimal, ce sont donc également des valeurs différentes.
Chaque valeur de couleur RVB est comprise entre 0 et 255, ce qui occupe 8 bits. Pour obtenir la valeur R, décalez vers la droite de 16 bits et supprimez G et B