相关疑难解决方法(0)

将数字除以3而不使用*,/,+, - ,%运算符

你会如何除以3为数字,没有使用*,/,+,-,%,运营商?

号码可以是签名或未签名.

c math division divide

678
推荐指数
25
解决办法
14万
查看次数

使用位移除以10?

是否有可能通过使用纯位加法,减法除以10的无符号整数,也许繁衍?使用资源非常有限且速度慢的处理器.

math bit low-level integer-division micro-optimization

41
推荐指数
4
解决办法
5万
查看次数

如何在Visual Studio上启用__int128?

当我__int128在Visual Studio中键入C++项目时,编辑器将颜色更改__int128为蓝色(如关键字).

但是当我编译源代码时,会出现以下错误:

error C4235: 
nonstandard extension used : '__int128' keyword not supported on this architecture
Run Code Online (Sandbox Code Playgroud)

如何__int128在Visual Studio上启用?

c++ int128 visual-studio

17
推荐指数
4
解决办法
3万
查看次数

有没有办法在没有模数/除法运算符的情况下编写"mod 31"?

如果操作数是2的幂,则可以在没有模数运算符或除法的情况下容易地获得数字的模数.在这种情况下,下面的公式成立:x % y = (x & (y ? 1)).在许多架构中,这通常很有效.可以这样做mod 31吗?

int mod31(int a){ return a % 31; };
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation bitwise-operators modulus

8
推荐指数
3
解决办法
2850
查看次数

有没有简单的方法来做模数2 ^ 32-1的操作?

我只是听说过x mod (2^32-1),并x / (2^32-1)会很容易,但如何?

计算公式:

x n =(x n-1 + x n-1/b)mod b.

因为b = 2^32,它很容易x%(2^32) == x & (2^32-1); 和x / (2^32) == x >> 32.(这里的^不是XOR).当b = 2 ^ 32 - 1时如何做到这一点.

在页面https://en.wikipedia.org/wiki/Multiply-with-carry.他们说" arithmetic for modulus 2^32 ? 1 requires only a simple adjustment from that for 2^32".那么"简单调整"是什么?

algorithm modulus

4
推荐指数
1
解决办法
3545
查看次数

C - 针对模数的按位运算的算法,对于非2的幂次数

我知道可以使用按位运算符计算2的幂的模数

  x % 2^n == x & (2^n - 1).
Run Code Online (Sandbox Code Playgroud)

但我想知道是否存在任何广义的按位算法,以找出任何数的模数不是2的幂.例如,

 7%5 
Run Code Online (Sandbox Code Playgroud)

先感谢您.

c bit-manipulation bitwise-operators

4
推荐指数
2
解决办法
667
查看次数

检查号码的逻辑可以被3整除吗?

不使用%,/或*,我必须找到否.可以被3整除吗?

这可能是一个面试问题.

谢谢.

c math

3
推荐指数
3
解决办法
1万
查看次数

如何在内存中表示极大的浮点数?

像 GMP 这样的任意精度库如何存储内存中表示的极大浮点数?

我会想象,例如,如果您想计算 Pi 或欧拉常数,例如 2,000,000 位数字,您将为小数点右侧的数字分配大量字节。每个字节将存储 2 个小数位值,并且该数组将是一个数据结构的成员,具有用于存储该值的位数和字节数。

这是它的工作原理吗?

c largenumber gmp bigint

1
推荐指数
1
解决办法
181
查看次数