JavaScriptでビットマスクを作成しています。-2147483648
ビット 0 から 14 まで正常に動作します。ビット 15 のみを 1 に設定すると、" " ではなく" " の整数値が生成されます2147483648
。ハードコーディングされた " " をビット 15 に返すことで、ここで特殊なケースのハックを行うことができますが2147483648
、その正しい方法を知りたいです。
サンプルコード:
function join_bitmap(hex_lower_word, hex_upper_word)
{
var lower_word = parseInt(hex_lower_word, 16);
var upper_word = parseInt(hex_upper_word, 16);
return (0x00000000ffffffff & ((upper_word<<16) | lower_word));
}
上記のコードは、hex_lower_word が「0x0」で hex_upper_word が「0x8000」の場合、2147483648 ではなく -2147483648 を返します。