javascript - 位掩码和 javascript 的问题

标签 javascript bitmask

我不确定我是否做错了什么,但我似乎无法让这个简单的 JavaScript 工作:

var a = 0;

a |= (1 << 31);

alert(a);

a |= (1 << 30);

alert(a);

你可以在这里看到它 http://jsfiddle.net/qPEVk/

不应该是3221225472吗?

谢谢,

最佳答案

从技术上讲,这没有任何问题,并且预计会出现负数,因为它正在转换为 32 位有符号 int。

基本上,前导位表示“负数或正数”,因此当您翻转它(使用 1<<31 )时,您会得到一个负数。

您的位掩码在最多 32 位上仍然可以像您期望的那样工作。 JavaScript 中的位掩码不能超过 32 位。

关于javascript - 位掩码和 javascript 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5705990/

相关文章:

javascript - JS\CSS - 图像只是弹出或弹出没有动画

javascript - 使用 javascript 触发媒体查询

php - 在 Php 中使用 Mysql 数据构建多维数组

PHP debug_backtrace 位掩码用法

c - 获取位掩码以交付给所有设备的快速方法

javascript - 用JS获取某个类型的父HTML元素

javascript - 如何获取地理位置并以html形式返回值

c - GCC 不会通过位掩码警告 0 或 1

c - 编写并使用一个将掩码作为参数并返回结构的函数

bitmask - 什么是位掩码和掩码?