У меня есть массив целых чиселJavascript побитового сдвиг до 32 бит
var ints = [R,B,G,A]
, и я хочу использовать смещение, чтобы получить 32-битовое представление
var thirtyTwo = AGBR
так, например,
[255.0, 0.0, 0.0, 255.0] => 0xFF0000FF => 4278190335
Я пытаюсь сделать это с помощью петли и битрейта:
function cArrayToABGR(va) {
var res = 0;
for (var i = 0; i < va.length; ++i) {
var color = va[i];
color <<= (8 * i);
res += color;
}
return res;
}
Но главная проблема в том, когда я Bitshift 255,0 < < 24, я получаю отрицательное число
255.0 << 24 = -16777216
, который говорит мне, что я либо достиг предела бит или разрешения подписан. Я думал, что все побитовые операции в Javascript находятся на неподписанных 32-битных поплавках, поэтому не уверен, что здесь происходит. Помогите?
«Я думал, что все битовые операции в JavaScript, находятся на беззнаковое 32 бит поплавки» - подписал 32-битные целые числа два дополнения https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators – jdphenix