我正在用 javascript 创建一个位掩码。它适用于第 0 位到第 14 位。当我仅将第 15 位设置为 1 时。它产生“ -2147483648
”而不是“ 2147483648
”的整数值。我可以在这里通过返回硬编码的“”来做一个特殊情况的破解,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