博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于取余
阅读量:5072 次
发布时间:2019-06-12

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

今天在做LPC2148的RTC实验时碰到一点小问题。厂家的例程在初始化预分频计数器时代码有点怪,如下

    

PREINT = Fpclk /32768-1;        // 设置预分频整数部分
PREFRAC = Fpclk - (Fpclk / 32768) * 32768; //预分频值,小数部分 

 

第二行代码明明是个取余操作,却被写得这么复杂,包含一个除法,一个减法,一个乘法操作,耗时实在厉害。于是想找个办法省省指令执行的次数。

本来是打算用取余操作 %来代替第二行代码的,但是不知道究竟是原来的代码效率好还是%运算符的效率高。但是发现操作数32768==0x8000。以上的两布操作就可以用位运算来完成了。

 修改后的代码如下

1 
PREINT 
=
 (Fpclk 
>>
 
15
-
 
1
;     
//
预分频值,整数部分
2 
PREFRAC 
=
 Fpclk 
&
 (
32768
 
-
 
1
);     
//
预分频值,小数部分

 

 

 

 

转载于:https://www.cnblogs.com/Leon5/archive/2010/09/14/1826251.html

你可能感兴趣的文章
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
django Models 常用的字段和参数
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>
英语单词
查看>>