当前位置: 首页 > 知识库问答 >
问题:

两个int值之间按位或运算后的负值

郑茂材
2023-03-14

我试图在两个数字之间执行位或运算:650510336和2147483648(650510336 2147483648)

console.log(650510336 | 2147483648)

共有1个答案

龙佐
2023-03-14

JavaScript中的所有按位运算符,当用于数字时,都将其操作数视为/生成32位有符号整数的结果……除了>>运算符。

由于需要无符号的数学,因此使用一个非操作逻辑右移将有符号的结果重新解释为无符号:

console.log((650510336 | 2147483648) >>> 0)
 类似资料:
  • 问题内容: 我收到编译器错误: 如果我不是完全错误,则二进制AND的结果与最长的操作数一样长。为什么结果是整数? 如果我想做空,会不会有表现上的损失? 问题答案: 如果我不是完全错误,则二进制AND的结果与最长的操作数一样长。为什么结果是整数? 因为Java语言规范说非长整数算法的结果始终是int。它可能写在的事实,32位CPU一样,内部的工作无论如何确认的方式-他们实际上不 具有 一种方法做算术

  • 问题内容: 我粘贴代码以查找按位运算符的两个数字的总和。请提出是否可以优化的建议。谢谢… 问题答案: 全面思考: 递归结束,因为进位在右边连续有更多位0(最多32次迭代)。 可以轻松地将其编写为循环。 算法探索的另一个特征在区分情况下并不过分。以上您还可以考虑以下条件:。

  • 问题内容: 当遇到按位移位运算符时,我遇到了一个有趣的场景。如果第二个操作数为负,按位移位运算如何工作?。 即,<< << b,“ <<”将a中的位模式向左移动b位。但是,如果b为负数,在运行时是否应该出错? 我能够成功运行以下代码,但我不知道它是如何工作的? 输入项 结果 “ a”的ASCII码为97。有人可以帮助我了解其工作原理吗? 问题答案: 但是,如果b为负数,在运行时是否应该出错? 不符

  • 问题内容: 低级别的位操作从来都不是我的强项。在理解以下按位运算符的用例时,我将不胜感激。请考虑… 我不确定这段代码将完成什么以及如何完成?为什么使用幻数0x7F?包装和拆包如何完成? 资源 问题答案: 就像评论所说,我们将年龄,性别和身高分成15位,格式为: 让我们从这一部分开始: 首先,age具有以下格式: 其中每个A可以为0或1。 将位向左移动8位,并用零填充间隙。这样就得到: 类似地: 现

  • 问题内容: 我目前正在编写一个小的下载管理器,尝试以百分比计算下载进度时会得到一个有趣的输出。这是我用来计算的: 是一个int(它计算从中读取的总字节数),并且是下载文件的长度(以字节为单位)。 只需少量下载即可很好地工作。但是,当我使用较大的文件(40MB)时,它开始制作有趣的东西。计算的输出如下所示: 我不知道为什么,但是计算结果为负。 由于正常的整数应该可以包含2 31 -1的数字,因此这不

  • 问题内容: 我试图在仅Swift代码中计算两个CLLocation点之间的方位角。我遇到了一些困难,并假设这是一个非常简单的功能。堆栈溢出似乎没有列出任何内容。 我的ltan2调用关于左值cgfloat或其他错误… 问题答案: 这是一个Objective-C解决方案 您的代码对我来说似乎不错。没事的没错。您没有指定结果有多远,但是您可以尝试将弧度/度转换器转换为: 如果得到负方位角,2*M_PI则