Rumah > Soal Jawab > teks badan
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? .
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
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