是不是真的只是將FF兩位移動到左邊?出於某種原因,在JavaScript這樣做,我得到0x3fc0000爲什麼我不能使用<< 2將0xff0000轉換爲0xff000000?
我所試圖做的是結合了十六進制顏色與alpha通道遮罩
即阿爾法= 0xFF的/完全不透明
顏色= 0x00ff00
最終結果= 0xff00ff00
是不是真的只是將FF兩位移動到左邊?出於某種原因,在JavaScript這樣做,我得到0x3fc0000爲什麼我不能使用<< 2將0xff0000轉換爲0xff000000?
我所試圖做的是結合了十六進制顏色與alpha通道遮罩
即阿爾法= 0xFF的/完全不透明
顏色= 0x00ff00
最終結果= 0xff00ff00
f
是4位(二進制1111
)。兩個十六進制數字(0xff
)是8位。所以你需要移動8來移動兩個十六進制位置。
您需要將它移動兩位以上2位。如果你想轉移這些,你需要使用
color << 8;
嘗試在JS提琴
var color = 0x00ff00;
alert(color.toString(16));
color = color << 8;
alert(color.toString(16));
color = color | 0xff;
alert(color.toString(16));
console.log(color);
這樣做,我得到-1000000 這是一些JS限制以下? – sk099