博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 位运算
阅读量:6655 次
发布时间:2019-06-25

本文共 409 字,大约阅读时间需要 1 分钟。

用移位实现乘除法运算 

  a=a*4; 
  b=b/4; 
  可以改为: 
  a=a<<2; 
  b=b>>2; 
  说明: 
  除2 = 右移1位 乘2 = 左移1位 
  除4 = 右移2位 乘4 = 左移2位 
  除8 = 右移3位 乘8 = 左移3位 
  ... ... 
  通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。 
  大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。 
  实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如: 
  a=a*9 
  分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改为: a=(a<<3)+a 
  a=a*7 
  分析a*7可以拆分成a*(8-1)即a*8-a*1, 因此可以改为: a=(a<<3)-a 

转载于:https://www.cnblogs.com/lizimu/p/10542702.html

你可能感兴趣的文章
如何制作出像顶尖咨询公司咨询顾问们那种风格的 PPT?
查看>>
共享经济影响电商 华亚优品商城凭“共创共享”模式受捧
查看>>
Swarm群集搭建
查看>>
shell
查看>>
造成HashMap非线程安全的原因
查看>>
嵌入式Linux内核学习路线和学习linux内核的建议
查看>>
Esxi更新补丁
查看>>
ldap理论属于概念缩略词
查看>>
Virtualization API之libvirt
查看>>
Android卡顿优化:卡顿分析方法
查看>>
Oracle教程之管理表空间(十二)--监控表空间
查看>>
人生若只如初见
查看>>
Ext4.1中文API文档已经全部翻译完成!
查看>>
linux下tomcat 管理端无法进入
查看>>
GPU加速有坑?
查看>>
Java 正则表达式(三)
查看>>
CentOS7安装EPEL
查看>>
windows 2003建立RAID-0 , RAID0-1, RAID-5 卷。(vmware环境)
查看>>
接口在ADO.NET中使用方法
查看>>
会做人比会写程序更重要
查看>>