Rumah  >  Soal Jawab  >  teks badan

javascript - Selesaikan kod berikut. . Bagaimana untuk memahami?

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}

Difahamkan >> Syif kanan yang ditandatangani, mengapa anda memerlukan parseInt(,16)? >>Bukankah peralihan data binari yang betul? . Kemudian parseInt tidak kira apa asas ia ditukar menjadi. Data binari harus kekal tidak berubah.
Kenapa bergerak 16 bit. . Bukankah 'FFFFFF' 6bait 48bit? .

大家讲道理大家讲道理2711 hari yang lalu406

membalas semua(2)saya akan balas

  • ringa_lee

    ringa_lee2017-05-19 10:17:40

    parseInt('hexStr', 16) Ayat ini bermaksud menukar rentetan yang mengandungi nombor perenambelasan kepada jenis berangka Int dengan menghurai perenambelasan sahaja

    balas
    0
  • PHP中文网

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

    Kenapa parseInt(,16)

    'FFFFFF' hanyalah rentetan, dan operasi anjakan yang betul memerlukan nombor.

    Kemudian parseInt tidak kira apa asas ia ditukarkan. Data binari harus kekal tidak berubah.

    Ambil 'FFFFFF' sebagai contoh Tiada F di bawah heksadesimal, jadi ia adalah NaN The carry berbeza untuk nilai di atas heksadesimal, jadi ia juga adalah nilai yang berbeza.

    Kenapa mudah alih 16-bit

    Setiap nilai warna RGB ialah 0~255, yang menduduki 8 bit. Untuk mendapatkan nilai R, anjak ke kanan sebanyak 16 bit dan keluarkan G dan B

    balas
    0
  • Batalbalas