javascript - Résolvez le code suivant. . Comment comprendre?
大家讲道理
大家讲道理 2017-05-19 10:15:40
0
2
433
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 ? .

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
左手右手慢动作

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

.
Ty80

Pourquoi parseInt(,16)

'FFFFFF' n'est qu'une chaîne, et l'opération de décalage à droite nécessite des nombres.

Ensuite, parseInt, quelle que soit la base dans laquelle il est converti. Les données binaires doivent rester inchangées.

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.

Pourquoi mobile 16 bits

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal