整数除法还有这么一手,学习!
来源:互联网 发布:matlab 初始化零矩阵 编辑:程序博客网 时间:2024/06/10 05:55
引用:http://www.xuebuyuan.com/521526.html
要求:如何用移位和加减实现除以3的操作,在此略微扩充一下,实现无符号整数除法,但是返回值也为无符号整型。
利用魔数。代码如下。
#include <iostream>using namespace std;int divide3(int a){return ((__int64)a * 0xAAAAAAAB) >>33;}int main(){int in;cin>>in;cout<<divide3(in)<<endl;return 0;}
方法中的魔数的原理是为了用乘法实现32位被除数的除法运算,编译器会为被除数乘上一个32位的倒数,就形成了一个64位的数,其中低32位是余数,高32位为我们需要的结果,以下是一些常用的魔数,例如0xAAAAAAAB就代表2/3,0xCCCCCCCD代表4/5等等,具体可以在网上搜索相关内容。利用魔数除以5的代码如下。
#include <iostream>using namespace std;int divide5(int a){return ((__int64)a * 0xCCCCCCCD) >>34;}int main(){int in;cin>>in;cout<<divide5(in)<<endl;return 0;}
0 0
- 整数除法还有这么一手,学习!
- 整数除法
- 整数除法
- 还有这么流氓的!
- 还有这么个地儿..^^
- pythpn基础学习之——整数除法
- 高精度整数除法
- 高精度整数除法
- 大整数除法
- ??待解决---整数除法
- JS除法求整数
- js除法取整数
- 大整数除法
- 大整数除法
- js除法取整数
- 完成整数除法运算
- 整数和浮点除法
- 关于整数除法
- 解决JSP、TOMCAT 8.0.9 环境下中文乱码问题
- oracle with as子查询用法
- JS中数组Array的用法
- android自定义圆角Dialog
- ACM-概率dp之入门
- 整数除法还有这么一手,学习!
- 黑马程序员——基础加强---反射机制-认识Class类
- EditText 文本内容输入限制
- 第八周项目三:多分段函数求值2
- 基于web视频聊天技术归纳
- 在ServletContextListener中使用Spring管理的bean
- C++基础之详解this指针(有,或者没有,这不是个问题)
- [Python]Import: Using Non-Builtin Functions
- Ubuntu忘记root密码如何解决?