我想在JavaScript中获取数字的绝对值.也就是说,放下标志.我在数学上知道我可以通过平方数然后取平方根来做到这一点,但我也知道这是非常低效的.
x = -25
x = x * x
x = sqrt(x)
// x would now be 25
Run Code Online (Sandbox Code Playgroud)
在JavaScript中有没有办法简单地删除一个比数学方法更有效的数字的符号?
我今天看到了这段摘录:
在大多数较旧的微处理器上,按位运算比加法和减法运算稍快,并且通常比乘法和除法运算快得多.在现代体系结构中,情况并非如此:按位运算通常与添加速度相同(尽管仍然比乘法更快).
我很好奇为什么按位操作比旧微处理器上的加/减操作稍快一些.
我能想到的只会导致延迟的是,实现加/减的电路取决于几级逻辑门(并行加法器和诸如此类),而按位运算则具有更简单的电路实现.这是什么原因?
我知道算术和按位运算都在现代处理器的一个时钟内执行,但纯粹谈到电路的传播时间,理论上现在处理器中的延迟仍然存在吗?
最后,我有一个关于按位移位操作执行的概念C问题:
unsigned x = 1;
x <<= 5;
unsigned y = 0;
y += 32;
Run Code Online (Sandbox Code Playgroud)
双方x并y应持有的价值32,但它采取5个独立左移获得x该值(中位运算的变化通过管道实现)?为了澄清,我纯粹是在询问电路行为而不是时钟周期数.
c bit-manipulation cpu-architecture bitwise-operators digital-logic