【发布时间】:2011-09-17 23:54:23
【问题描述】:
计算机如何知道 (int x, y) x << y 表示移位 y 位?我不是指轮班部分。我的意思是y 部分。计算机是否将 x 移动 1 并从 y 中减去 1 直到 y == 0?如果不是,计算机如何计算出 y 的值?
如果说y = 10,那么二进制表示是0b1010。
电脑总不能简单地把1010的每一点都拿来用吧?
我正在尝试对大于 8 的位大小进行此操作。由于值不是简单地存储为标准整数数组,因此容器不代表值,因此重载运算符 << 和 >> 是有点难。
但是,从 100 位数字倒数到 0 效率有点低,所以我试图找到一种方法让计算机更快地理解位数组。
【问题讨论】:
-
取决于 ALU 的内部结构。可能是一些非常丑陋、难以理解和复杂的位摆弄电路,以某种方式降低了算法的复杂性。
-
同意这听起来像是硬件问题而不是 C++ 问题
标签: c++ math mathematical-optimization bitarray bit-shift