C++用位操作优化加减乘除法是什么意思,具体指什么?

 我来答
Bk0X
2012-08-09 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:706万
展开全部
我觉得谈不上优化, 如果真有性能提升, 编译器也会自己优化.

对于一个十进制的数来说, 左移一位就等于乘以10, 比如 99 左移为 990.
左移2位就等于乘以10的2次方100, 比如 99左移2位就是9900

右移正好反过来, 是除.

计算机的数据是2进制, 所以用2代替10.
int x = 100;
x << 1; // 等于x*2
x << 2; // 等于x*4
x << 3; // 等于x*8
x >> 4; // 等于 x/16

有人说这么做性能比较高.

至于加减法, 我真不知道用位操作怎么做.
追问
10进制能够进行位操作??扯淡吧
追答
.. 用十进制给你举个例子而已, 下面不是说了 "" 计算机的数据是2进制, 所以用2代替10.""
mjsgkp
2012-08-23 · TA获得超过112个赞
知道答主
回答量:90
采纳率:0%
帮助的人:77万
展开全部
一般情况下只有在乘以或除以2的n次方时采用移位的方法,这样比直接相乘或相除效率高的多。
比如2*4可以用2<<2来表示,4*8可以用4<<3来表示,18/2可以用18>>1来表示。
至于为什么效率高,这涉及到了cpu中运算器的运算方法问题,说起来不太好说,建议你如果真有想弄明白的想法,就看一看计算机组成原理的运算器节,看完后相信你就知道为什么性能优化了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2012-08-09 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:5009万
展开全部
用位运算实现算术运算比直接进行效率要高得多。
追问
如何实现,小举个例子,谢谢了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式