问题标签 [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.
batch-file - FOR 循环变量算术 - 批处理脚本
所以我正在为我的一门课程做一个最终项目,目标基本上是让用户输入初始投资,以及价值贬值的年数......它会以一个确定的恒定值贬值由投资除以年数。
在 for 循环中,它应该从“账面价值”中减去“年度”并打印出每年的新账面价值......数学本身可以正常工作(我相信?)因为如果我在我的 for 循环之外回显这些值,它们是它们应该是什么,但是使用 for 循环中的 echo 语句,我没有得到我需要它输出的东西(账面价值在循环内不会改变)。
不太确定该去哪里,而且谷歌还没有让我做得很好。感谢您提供的任何帮助!
binary - 二进制在算术方面的优势
有谁知道在进行算术运算时二进制系统如何优于十进制?这是一个测试中的问题,我似乎无法在任何地方找到一个好的答案......
具体来说:
在以下主题下解释使用二进制而不是十进制的好处 -
整数加法
整数乘法
整数除法
浮点存储
任何帮助将不胜感激。
haskell - 从 Int 的符号计算位掩码的最快方法是什么?
是的,我知道这是一个有点疯狂的问题。请不要问我是否真的需要知道答案,或者这是否真的是“我的”问题所在。谢谢。
有时以下功能非常好:
例如,它可以这样使用:
当使用带有 -fllvm 和 -O2 的 GHC 7.6.3 编译上述定义时isNeg
,它会产生
问题是这js
是一个条件跳转,这些似乎被认为是非常紧凑的循环的效率问题(所有东西都已经拆箱等)。另一种方法是写
这产生
这非常简单,但我知道班次 ( sarq
) 是相对较慢的操作。
另一个看起来很合理的选择是
可悲的是,这会产生非常糟糕的代码,甚至不值得在这里粘贴。
问题
有没有更好的办法?
将升级到 GHC 7.8.2 并将最后一个定义重写为
isNeg2# x = negateInt# (x <# 0#) -- (注意:已编辑以纠正较早的错误)
与新类型相匹配的东西真的很棒吗?我无法测试它,因为我没有 GHC 7.8.2。
python - 理解 Python 中的算术运算符
据我目前的理解,像'+'和'-'这样的算术操作数是一种特殊的方法,属于整数类。它们对我来说似乎不同,因为您不必像这样格式化算术运算:x.__add__(y)
但这就是您编写x + y
.
我的第一个问题是:到目前为止我是对的吗?
我的第二个问题是:__add__
方法中发生了什么?我在任何文档中都找不到这个。我想了解这如何不会导致无限回归,因为我只能将这种方法描绘成这样:
但是当然,你没有解释'+',这导致了无限回归。
我希望我的问题很清楚,因为我脑子里有点模糊。基本上,我试图很好地理解 Python 的基本原理是什么。(也许是其他语言?)
c++ - 无符号整数算术警告
如果这个问题已在其他地方得到回答,我深表歉意,但我已经搜索过,但尚未找到答案......
编译以下代码时收到以下警告:
这是代码的摘录(几个例子来说明我的问题):
除了加法之外,我还尝试了其他形式的算术。为什么编译器会抛出此警告,声称我正在从“int”转换为“unsigned short int”(尤其是当我明确将其转换为无符号时)?看起来,对于第二种情况,'one += 1;',因为表达式的右侧是一个正数,编译器将它添加到无符号变量 'one' 中不会有任何问题。
此外,最后的测试,'one++;' 不会产生警告,我不知道为什么。
我仍然习惯在这里提问,所以如果这个问题是微不足道的或不清楚的,请原谅我。谢谢!
java - Java Primitives 范围计算
在 Java 中,当我们声明
它会给出编译时错误,但是
编译得很好。为什么会这样?
integer - 卡尔曼滤波器的溢出感知实现
我正在尝试使用 3 轴加速度计和 3 轴陀螺仪作为传感器来实现卡尔曼滤波器以获得物体的方向。
为这个过滤器的预测阶段选择动态模型是直截了当的,它是:
但是我手头没有浮点支持,我需要每一位精度来模拟角度。因此,我的计划是将角度表示为 32 位整数数据,将一整圈表示2 pi
为 2^32 小步。因此,整数溢出会免费处理换行(2 pi
与 的方向相同0
)。
但这也给过滤器带来了一个问题:如果估计的角度是359°
,而我的测量结果是0°
,那么过滤器会假设一个巨大的创新,导致不确定性和奇数值。
有没有办法让过滤器知道这种可能的包装?1°
仅在上述情况下给予创新?
为了规避这个问题,我考虑过使用角度差异而不是角度,但我找不到合适的模型。
c - C unsigned int 比较 - 环绕自定义位数
我正在读取一个 24 位值,目前是一个uint32_t
变量。
在将我的头撞到墙上计算两个这样的变量之间的差异并思考“它是无符号的!为什么这个溢出是个问题?!”之后,我意识到这些值溢出了包含它们的变量的大小。
这是一个计数器,因此已知一个比另一个“大”,尽管可能已经溢出。
因此,0x1 - 0x2 = 0xFFFFFFFF
,但应该是0x00FFFFFF
。
我应该如何最好地处理这个问题?
- 定义一个类型
uint24
; if
/else
在进行适当的算术运算之前较大;- 还有什么我没有想到的?
“最佳”应解释为“最佳实践”/“最易读”/“最安全”。
c - C语言中的数字加1
我必须将 1 加到 C 中的数字上。我必须在没有算术运算符(如 '+'、'++'、.. 等)的情况下执行此操作。
我写了以下代码行。
这工作正常,直到达到整数限制,即,对于 32 位,它是 4294967295。但我在许多其他网站上看到,为了执行相同的操作,他们对两个数字进行 AND,然后是 XOR 和左移。
请建议我的方法是否正确,因为我是 C 新手。
algorithm - 通过平方根的小数部分找到一个数字
我有一个由两个问题组成的数学问题:
- 我们能找到一个数字 N 只知道它的平方根的小数部分直到一个精度(只知道小数部分的近似值,因为小数部分永远不会结束)
- 答案是独一无二的吗?这意味着我们不会找到平方根十进制值相等的两个整数(例如前 50)。
例子:
如果我们有 0,4142135623730950488016887242097,我们能找到它是 2 的平方根的小数部分还是 0,418286444621616658231167581 对于 1234567890 第二个问题的答案很简单,因为假设我们有 50 位小数,可能整数的个数' root 远远超过小数部分的 10^50-1 个可能值,因此会有多个答案。
我非常感谢您的帮助或任何研究轨道。