Maison  >  Questions et réponses  >  le corps du texte

javascript - Résolvez le code suivant. . Comment comprendre?

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 ? .

大家讲道理大家讲道理2711 Il y a quelques jours407

répondre à tous(2)je répondrai

  • ringa_lee

    ringa_lee2017-05-19 10:17:40

    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

    .

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-19 10:17:40

    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

    répondre
    0
  • Annulerrépondre