问题标签 [integer-arithmetic]

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 投票
1 回答
700 浏览

batch-file - FOR 循环变量算术 - 批处理脚本

所以我正在为我的一门课程做一个最终项目,目标基本上是让用户输入初始投资,以及价值贬值的年数......它会以一个确定的恒定值贬值由投资除以年数。

在 for 循环中,它应该从“账面价值”中减去“年度”并打印出每年的新账面价值......数学本身可以正常工作(我相信?)因为如果我在我的 for 循环之外回显这些值,它们是它们应该是什么,但是使用 for 循环中的 echo 语句,我没有得到我需要它输出的东西(账面价值在循环内不会改变)。

不太确定该去哪里,而且谷歌还没有让我做得很好。感谢您提供的任何帮助!

0 投票
1 回答
1551 浏览

binary - 二进制在算术方面的优势

有谁知道在进行算术运算时二进制系统如何优于十进制?这是一个测试中的问题,我似乎无法在任何地方找到一个好的答案......

具体来说:

在以下主题下解释使用二进制而不是十进制的好处 -

  • 整数加法

  • 整数乘法

  • 整数除法

  • 浮点存储

任何帮助将不胜感激。

0 投票
1 回答
384 浏览

haskell - 从 Int 的符号计算位掩码的最快方法是什么?

是的,我知道这是一个有点疯狂的问题。请不要问我是否真的需要知道答案,或者这是否真的是“我的”问题所在。谢谢。

有时以下功能非常好:

例如,它可以这样使用:

当使用带有 -fllvm 和 -O2 的 GHC 7.6.3 编译上述定义时isNeg,它会产生

问题是这js是一个条件跳转,这些似乎被认为是非常紧凑的循环的效率问题(所有东西都已经拆箱等)。另一种方法是写

这产生

这非常简单,但我知道班次 ( sarq) 是相对较慢的操作。

另一个看起来很合理的选择是

可悲的是,这会产生非常糟糕的代码,甚至不值得在这里粘贴。

问题

  1. 有没有更好的办法?

  2. 将升级到 GHC 7.8.2 并将最后一个定义重写为

    isNeg2# x = negateInt# (x <# 0#) -- (注意:已编辑以纠正较早的错误)

与新类型相匹配的东西真的很棒吗?我无法测试它,因为我没有 GHC 7.8.2。

0 投票
5 回答
347 浏览

python - 理解 Python 中的算术运算符

据我目前的理解,像'+'和'-'这样的算术操作数是一种特殊的方法,属于整数类。它们对我来说似乎不同,因为您不必像这样格式化算术运算:x.__add__(y)但这就是您编写x + y.

我的第一个问题是:到目前为止我是对的吗?

我的第二个问题是:__add__方法中发生了什么?我在任何文档中都找不到这个。我想了解这如何不会导致无限回归,因为我只能将这种方法描绘成这样:

但是当然,你没有解释'+',这导致了无限回归。

我希望我的问题很清楚,因为我脑子里有点模糊。基本上,我试图很好地理解 Python 的基本原理是什么。(也许是其他语言?)

0 投票
1 回答
121 浏览

c++ - 无符号整数算术警告

如果这个问题已在其他地方得到回答,我深表歉意,但我已经搜索过,但尚未找到答案......

编译以下代码时收到以下警告:

这是代码的摘录(几个例子来说明我的问题):

除了加法之外,我还尝试了其他形式的算术。为什么编译器会抛出此警告,声称我正在从“int”转换为“unsigned short int”(尤其是当我明确将其转换为无符号时)?看起来,对于第二种情况,'one += 1;',因为表达式的右侧是一个正数,编译器将它添加到无符号变量 'one' 中不会有任何问题。

此外,最后的测试,'one++;' 不会产生警告,我不知道为什么。

我仍然习惯在这里提问,所以如果这个问题是微不足道的或不清楚的,请原谅我。谢谢!

0 投票
2 回答
1561 浏览

java - Java Primitives 范围计算

在 Java 中,当我们声明

它会给出编译时错误,但是

编译得很好。为什么会这样?

0 投票
1 回答
607 浏览

integer - 卡尔曼滤波器的溢出感知实现

我正在尝试使用 3 轴加速度计和 3 轴陀螺仪作为传感器来实现卡尔曼滤波器以获得物体的方向。

为这个过滤器的预测阶段选择动态模型是直截了当的,它是:

但是我手头没有浮点支持,我需要每一位精度来模拟角度。因此,我的计划是将角度表示为 32 位整数数据,将一整圈表示2 pi为 2^32 小步。因此,整数溢出会免费处理换行(2 pi与 的方向相同0)。

但这也给过滤器带来了一个问题:如果估计的角度是359°,而我的测量结果是,那么过滤器会假设一个巨大的创新,导致不确定性和奇数值。

有没有办法让过滤器知道这种可能的包装?仅在上述情况下给予创新?

为了规避这个问题,我考虑过使用角度差异而不是角度,但我找不到合适的模型。

0 投票
2 回答
1473 浏览

c - C unsigned int 比较 - 环绕自定义位数

我正在读取一个 24 位值,目前是一个uint32_t变量。

在将我的头撞到墙上计算两个这样的变量之间的差异并思考“它是无符号的!为什么这个溢出是个问题?!”之后,我意识到这些值溢出了包含它们的变量的大小。

这是一个计数器,因此已知一个比另一个“大”,尽管可能已经溢出。

因此,0x1 - 0x2 = 0xFFFFFFFF,但应该是0x00FFFFFF

我应该如何最好地处理这个问题?

  • 定义一个类型uint24
  • if/else在进行适当的算术运算之前较大;
  • 还有什么我没有想到的?

“最佳”应解释为“最佳实践”/“最易读”/“最安全”。

0 投票
3 回答
5649 浏览

c - C语言中的数字加1

我必须将 1 加到 C 中的数字上。我必须在没有算术运算符(如 '+'、'++'、.. 等)的情况下执行此操作。

我写了以下代码行。

这工作正常,直到达到整数限制,即,对于 32 位,它是 4294967295。但我在许多其他网站上看到,为了执行相同的操作,他们对两个数字进行 AND,然后是 XOR 和左移。

请建议我的方法是否正确,因为我是 C 新手。

0 投票
1 回答
374 浏览

algorithm - 通过平方根的小数部分找到一个数字

我有一个由两个问题组成的数学问题:

  • 我们能找到一个数字 N 只知道它的平方根的小数部分直到一个精度(只知道小数部分的近似值,因为小数部分永远不会结束)
  • 答案是独一无二的吗?这意味着我们不会找到平方根十进制值相等的两个整数(例如前 50)。

例子:

如果我们有 0,4142135623730950488016887242097,我们能找到它是 2 的平方根的小数部分还是 0,418286444621616658231167581 对于 1234567890 第二个问题的答案很简单,因为假设我们有 50 位小数,可能整数的个数' root 远远超过小数部分的 10^50-1 个可能值,因此会有多个答案。

我非常感谢您的帮助或任何研究轨道。