问题标签 [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 投票
2 回答
1453 浏览

c - 减去两个无符号 32 位整数并分配给 64 位有符号整数

目标是得到 (-1) 作为最终结果。

对于上面的程序(每行都有编号),有人可以解释一下吗

  • 为什么(2)按预期工作,而不是(3)?ALU 的算术或微步是什么?
  • (4) 和 (5) 有什么区别
  • 为什么(7)有效而(6)失败
0 投票
5 回答
161 浏览

c++ - 奇怪的整数溢出逻辑

对于以下代码,我得到了溢出,但遗憾的是我似乎无法理解为什么。

之后test是一个相当大的值。

有人可以解释一下,这里会发生什么吗?

0 投票
1 回答
82 浏览

integer-arithmetic - 并行添加两个整数

假设您在两个数组 a,b 中给出了 2 个 n 位数的无符号整数,并且您有 p 个处理器,每个处理器可以添加 2 个数字并计算进位(如果存在)。是否可以在 O(p+n/p) 时间内计算 a+b?我一直在尝试将输入分成 (n/p) 的 p 个间隔,但我不知道如何处理进位。

0 投票
6 回答
4041 浏览

c# - 在 C# 整数算术中,a/b/c 是否总是等于 a/(b*c)?

令 a、b 和 c 为非大正整数。a/b/c 是否总是等于 a/(b * c) 与 C# 整数算术?对我来说,在 C# 中它看起来像:

所以我的问题是:是否x1 == x2适用于所有 a、b 和 c?

0 投票
2 回答
124 浏览

java - 为什么这个算术运算在java中不起作用?

在执行以下操作时,我很想看到一个奇怪的错误:

输出是这样的:

为什么最后三个操作返回0?周围的括号1/3似乎改变了它执行计算的方式,但甚至试图将其转换为int也不会改变输出。

我正在使用BlueJ IDEJava version 1.7.0_17


编辑

我找到了答案。这是由于操作顺序。parens除法首先发生的原因是int1/3 或 2/3 总是等于0。如果我允许width * 2在除以3一切之前发生就可以了,因为数字大于1

有时它只是基本的数学...... :)

0 投票
2 回答
654 浏览

c++ - Find out (in C++) if binary number is prefix of another

I need a function with a header like this:

If a is, read as a binary number string, a prefix of b, then set *c to be the rest of b (i.e. "what b has more than a") and return true. Otherwise, return false. Assume that binary strings always start with "1".

Of course - it is easy to do by comparing bit by bit (leftshift b until b==a). But is there a solution which is more efficient, without iterating over the bits?

Example: a=100 (4), b=1001 (9). Now set *c to 1.

0 投票
1 回答
67 浏览

integer-arithmetic - 防止因两个人的恭维而导致的不当行为

我阅读了以下问题:Value of i for (i == -i && i != 0) to return true in Java并且有点眼花缭乱。

有人读到航天器因使用错误的单位系统而丢失,所以看到问题和 awnser 中提到的行为对我来说是非常意外的。

如何防止由此产生的错误/意外行为而不会造成运行时损失?(我发现通过比较很难想到有意义的代码=,而我认为abs返回负值失败相当简单)。有例外要捕获吗?警告这一点的短绒?


意外行为:

如果输入是最小负数, javaabs()返回最小负数。-x=x 有一个非 0 的解,即二进制补码中的最小负数。

0 投票
2 回答
2085 浏览

casting - 键盘类型转换

我想将从我的 Arduino 键盘(类型为“char”)输入的数字转换为类型“int”,以便我可以在变量中使用它们并使用数学。例如,如果我按下键“5”,我如何将它放入变量“keyPressed”并执行“X =(keyPressed * 3)”以获得“int X = 15”。我厌倦了 atol、atoi、reinterpret_cast、static_cast 等,但没有成功。我正在使用“开关盒”从我的键盘获取条目,但任何其他方法都可以。我拥有按下一个键并获得类似 Serial.println() 等输出所需的一切,但没有我可以在进一步计算中使用的 int 值。请帮忙。谢谢你。

这段代码终于可以工作了!:感谢您的所有帮助。

我现在正在为“lcd ....”更改“Serial ....”,它适用于我的液晶显示器。这是基本代码,当然我必须对其进行微调。-cl

0 投票
2 回答
118 浏览

algorithm - 以低复杂度方式求幂

我想计算 q^k,st q 是 n 位宽,在限制中:

  1. 最终结果将是 n*k 位宽。
  2. 对于计算的每一步,x,y st x 相乘的结果是|x| 位宽,y 为 |y| 位宽是 |x|*|y| 位宽。

我试着成对做这件事;从 q^2 开始,然后是 q^4,等等。第一步的结果需要 2n 位,第二步需要 (2^2)n 位等,最后一步需要 n*2^(logk) (=kn ) 位。我们有 log(k) 步,仔细计算得出:O(log(n)(log(k))^2)。在上述限制中,我很高兴听到更快的方法(或对该算法或类似算法的更好分析)。提前致谢。

0 投票
1 回答
276 浏览

haskell - 无限精度整数:除以 2

在 C 语言中,如果我想将一个 int 除以 2,x%2应该运行得尽可能快,(x%10)% 2 因为一个好的编译器只会查看最后一位。但是在具有无限精度算术的语言中呢?

特别是,在 Haskell 中哪个会更快(或者它们会是相同的速度):even x还是even (quot x 10)