嵌入式C开发---用循环实现左移右移
2016-06-15 17:27
260 查看
//将n左移m位 int byte_to_left_move(int n , int m) { int i , ret = 1 ; if(n == 0 || n < 0) { return ; } if(n == 1) { for(i = 0 ; i < m ; i++) ret *= n * 2 ; } if(n > 1) { for(i = 0 ; i < m ; i++) ret *= n ; } return ret ; } //将n右移m位 int byte_to_right_move(int n , int m) { int i , ret = 1 ; if(n == 0 || n < 0) { return ; } if(n == 1) { ret = 0 ; } if(n > 1) { for(i = 0 ; i < m ; i++){ n /= 2 ; } ret = n ; } return ret ; }闲着无聊,自己写了两个API接口,测试通过,但可能还没完善,不过初步的实现了将一个数左移右移N位的算法,算法实现非常简单,就是循环的乘和除,这时候明白了,其实基础是很重要的,比如开始学习C语言的时候,老师教的累乘和累加的算法,尽管简单,但还是用途很大,这两个API也有类似的,比如左移的接口就有累乘的性质在里面。
相关文章推荐
- [乐意黎]学驾照自动档之宝来灯光
- Wireshark入门与进阶系列(二)
- iOS 线程间的通信 (GCD)
- 交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致
- 14.3.2.3 Consistent Nonlocking Reads 一致性非锁定读
- 14.3.2.3 Consistent Nonlocking Reads 一致性非锁定读
- Android 下陀螺仪、加速度和磁场传感器数据定义
- Delphi对Excel的所有操作(一)
- ios学习路线—Objective-C(Protocol)
- python包的各种安装问题汇总
- 红帽Linux 配置VNC桌面远程工具
- hibernate缓存:一级缓存和二级缓存
- iOS Layout机制相关方法
- 网站发送短信的工具类,验证码、通知消息等
- jni semantic error
- 单词接龙 WordsCanRange --欧拉回路和欧拉路的应用
- android项目智慧北京开发完整步骤:第二天
- Delphi对Excel的所有操作(二)
- java 正则表达式入门
- ambari安装Hadoop总结