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

c++ - 使用单个连续内存块索引 3 维数组

如何working_lattice[1][5][3]使用上述声明样式访问?

0 投票
2 回答
142 浏览

c - 如何在 (a*X)/b 公式中使用两个可能更大的数字重新调整 int

我在 c 中有一个如下所示的公式:

这用于重新X缩放a/b。但是X16 位无符号整数和乘法a很容易溢出。我怎样才能只使用具有准确结果的整数来进行此计算。

我当然可以使用浮点运算,但是这个操作很有可能在没有浮点硬件的处理器上工作。

编辑:我忘了说 a 和 b 都是 32 位无符号整数。好吧,我的答案是右移ab直到它们都适合 16 位。这种方式a * X最大为 32 位,最终计算是准确的。

0 投票
3 回答
904 浏览

python - 如何在python中使用整数运算将分数转换为浮点数?

我需要做的是使用整数运算将分数转换为浮点数。所需的小数位数被指定为变量DECIMALS。每个分数都包含在一个整数元组中,例如(1, 3). 第一项是分子,第二项是分母。元组包含在一个名为 的列表中fractions

到目前为止,这是我的代码:

当我运行代码时,这就是我得到的:

问题是我需要将其格式化为正确的十进制格式。我尝试的是

但当然,这只会帮助我处理前 2 位小数;其余的都是错误的。我想把它分开,这样我就可以单独计算分数,使它们更容易格式化,但我不知道该怎么做。问题是所有分数都需要由相同的代码处理。我也希望它被正确地四舍五入,但现在这没什么大不了的。

0 投票
1 回答
230 浏览

assembly - 数据十进制转二进制

  1. 将 X10 转换为二进制 X2 ;您必须确定并准确说明以二进制表示 X10 需要多少位。将表示 X2 所需的位数四舍五入到最接近的 4 的倍数,并以该位数表示 X2,每个 4 位组之间有一个空格。

x10 58927634 我已将 x10 转换为 x2

11100000110010101000010010

但我无法理解它所说的部分,将表示 X2 所需的位数的值四舍五入到最接近的 4 倍数,请我真的需要帮助我只需要一个解释来解决这个问题我不需要回答只是解释。

0 投票
1 回答
65 浏览

algorithm - 时间戳到财政周

我正在尝试将格式"yyyy-mm-dd"中的时间戳转换为整数财政周。目前,我的算法是 4(k-1) + floor(d/7)+1,其中 k 是整数月份,d 是月份的整数天。星期六开始新的财政周。

这有一些缺陷并且是不正确的。例如,考虑 2012 年 1 月 28 日星期六:

  • 我的算法计算出 5(这是正确的)。

接下来考虑,2 月 3 日星期五:

  • 我的算法计算出 5(这是正确的)。

现在考虑 2 月 4 日星期六。

  • 我的算法计算出 5(这是不正确的)。

看来我的算法总是会在几个月之间失败,从而累积越来越多的错误。

如何计算正确的会计周?

0 投票
1 回答
268 浏览

c++ - 非标准基数的算术

我试图将我的任意精度整数类转换为能够使用不只是每个数字 8 位的数字。我偶然发现了一个奇怪的问题:我可以使用uint16_t 我的基本数字类型,但不能使用uint32_t. 我的代码将返回错误的结果。我用来找出问题所在的示例是0x1111111111111111 * 0x1111111111111111,应该是0x123456789abcdf00fedcba987654321。但是,我得到了0x123456789abcdf0fedcba987654321

我认为我已经更改了所有硬编码类型,因此更改基本数字类型无关紧要,但显然不是。

以下是相关代码:

是否有一些明显的我错过了可能导致错误计算的东西?我一口气盯着这段代码看了太久。

完整的修改代码在这里

编辑:我已经在ideone上测试了代码,它返回了这个计算的正确值,但我的电脑仍然没有。对此有什么好的解释吗?

0 投票
3 回答
343 浏览

c - C数组算术和指针

可能重复:
在 C 数组中,为什么这是真的?a[5] == 5[a]

我正在阅读有关 C 的教程,并且遇到了以下语法:

现在的重点是得到int 1000,但最后一个没有任何意义。要么是晚了,我的大脑没有工作,要么是 C 特有的东西,要么是错字。当涉及到指针时,我想涵盖我所有的基础知识,因此请仔细阅读它。这意味着理解这一切。任何答案将不胜感激!

0 投票
3 回答
412 浏览

c - 用整数理解 printf()

我有一个关于该printf()方法如何打印有符号或无符号整数的问题。有一天,我发现自己在想,鉴于计算机没有十进制的概念,将二进制序列转换为人类可以理解的十进制数字序列是多么困难。

下面,我有一个printf()方法(从这里)及其相关方法。正如您在评论中看到的那样,我试图尽可能多地了解其printi()工作原理:

如果我讨厌阅读库源代码的一件事,那就是它几乎不可读。具有一个字符且没有注释来解释它们的变量名称是一种痛苦。

您能否以简单的方式解释将整数转换为十进制数字字符串的方法到底是什么?

0 投票
3 回答
222 浏览

c - 将多个整数打印为一个任意长度的十进制字符串

假设我有 16 个 64 位无符号整数。在执行操作时,我一直小心翼翼地在他们之间适当地喂进进位。我可以将它们输入一种方法,将它们全部转换为一个十进制数字字符串,就好像它是一个 1024 位二进制数一样?换句话说,是否有可能制作一种适用于表示一个更大整数的任意数量整数的方法?

我想有符号整数会更困难,因为要处理最重要的位。我想最重要的整数将是有符号整数,其余的将是无符号的,以表示数字的剩余“部分”。

(这与另一个问题半相关。)

0 投票
3 回答
3293 浏览

javascript - 优化 javascript 代码以使用整数运算

在假设“非常好”意味着最小化浮点算术运算量以支持整数算术的假设下,有些算法“非常好”地解决了问题。以Bresenham 的线条算法为例,该算法用于确定要填充哪些像素以便在画布上绘制线条:这个人实际上只用一些简单的整数运算就可以完成整个过程。

这种事情在很多情况下显然是好的。但是,在 javascript 中需要大量浮点数学运算的操作值得烦恼吗?据我所知,就语言规范而言,一切几乎都是十进制数。我想知道尝试将事物尽可能保持为整数是否值得 - 浏览器是否进行了可以使其值得的优化?