javascript - Selesaikan kod berikut. . Bagaimana untuk memahami?
大家讲道理
大家讲道理 2017-05-19 10:15:40
0
2
455
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? .

大家讲道理
大家讲道理

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

membalas semua(2)
左手右手慢动作

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

Ty80

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan