问题标签 [negative-number]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3967 浏览

javascript - 数组构造和负数

我在 javascript 中实现了一种路由算法,但是当我在数组中分配一个负的变量时,我给出了这个错误:无效的数组长度。

我不知道如何解决这个错误。

0 投票
3 回答
13481 浏览

floating-point - 如何在处理负零时有效地比较两个浮点值的符号

给定两个浮点数,我正在寻找一种有效的方法来检查它们是否具有相同的符号,假设如果两个值中的任何一个为零(+0.0 或 -0.0),它们应该被认为具有相同的签到

例如,

  • SameSign(1.0, 2.0) 应该返回 true
  • SameSign(-1.0, -2.0) 应该返回 true
  • SameSign(-1.0, 2.0) 应该返回 false
  • SameSign(0.0, 1.0) 应该返回 true
  • SameSign(0.0, -1.0) 应该返回 true
  • SameSign(-0.0, 1.0) 应该返回 true
  • SameSign(-0.0, -1.0) 应该返回 true

SameSign在 C++ 中一个天真的但正确的实现是:

假设是 IEEE 浮点模型,这里有一个SameSign编译为无分支代码的变体(至少使用 Visual C++ 2008):

定义binary_cast如下:

我正在寻找两件事:

  1. SameSign使用位技巧、FPU 技巧甚至 SSE 内在函数更快、更有效地实现.

  2. SameSign三个值的有效扩展

编辑:

我已经对三个变体SameSign(原始问题中描述的两个变体,加上斯蒂芬的一个变体)进行了一些性能测量。每个函数运行 200-400 次,在 101 个浮点数组中的所有连续值对上随机填充 -1.0、-0.0、+0.0 和 +1.0。每次测量重复 2000 次并保持最短时间(以消除所有缓存效应和系统引起的减速)。该代码使用 Visual C++ 2008 SP1 编译,并启用了最大优化和 SSE2 代码生成。测量是在 Core 2 Duo P8600 2.4 Ghz 上完成的。

以下是时序,不包括从数组中获取输入值、调用函数和检索结果的开销(总计 6-7 个时钟滴答):

  • 天真的变体:15 滴答声
  • 位魔法变体:13 个滴答声
  • Stephens 的变体:6 滴答声
0 投票
5 回答
888 浏览

c++ - 无符号负原语?

在 C++ 中,我们可以制作原语unsigned。但他们总是积极的。还有没有办法制作无符号负变量?我知道 unsigned 这个词的意思是“没有符号”,所以也不是减号 (-)。但我认为 C++ 必须提供它。

0 投票
4 回答
4245 浏览

perl - 从 perl 中的字符串解析负数

如何从 perl 中的字符串中解析负数?我有这段代码:

它给了我5,但我需要3。我该怎么做?

0 投票
7 回答
198409 浏览

javascript - 如何检查一个数字是否为负数?

我想检查一个数字是否为负数。我正在寻找最简单的方法,所以预定义的 JavaScript 函数是最好的,但我还没有找到任何东西。这是我到目前为止所拥有的,但我认为这不是一个好方法:

0 投票
4 回答
393 浏览

javascript - 如何使用javascript将-1转换为1?

如何使用 javascript 将 -1 转换为 1?

或者

结果应该是

0 投票
7 回答
53593 浏览

c++ - 随机数和负数

我必须生成[-100; 范围内的数字;+2000]在 C++ 中。如果只有正数可用,我怎么能用 rand 做到这一点?有什么快速的方法吗?

0 投票
10 回答
97247 浏览

python - Python中负数的模运算

我在 Python 中发现了一些关于负数的奇怪行为:

谁能解释发生了什么?

0 投票
4 回答
23506 浏览

c - C中负数的表示?

C如何表示负整数?

是通过二进制补码表示还是使用 MSB(最高有效位)?

-1十六进制是ffffffff.

所以请为我澄清这一点。

0 投票
14 回答
128657 浏览

java - java如何用负数进行模数计算?

我做模数错了吗?因为在 Java 中-13 % 64评估为-13但我想得到51.