是不是真的只是将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