2051|0

6593

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

C语言二进制除法用左右移位来表示 [复制链接]

有些编译器和硬件是支持乘除法和浮点运算,运用起来也是很方便!唯一让我不满的就是很占用ROM ! 所以某些平台恰好可以用移位来换算
学习推算心得:
分母是为 2的平方的情况下成立! 2.4.8.16.32.64.128.256.512.1024.2048......

左移1位 相当于 乘以2 左移2位 相当于 乘以4 左移3位 相当于 乘以8 左移4位 相当于 乘以16 ...... 是以一累加, 乘以2的平方累加
右移1位 相当于 除以2 右移2位 相当于 除以4 右移3位 相当于 除以8 右移4位 相当于 除以16 ...... 是以一累减, 乘以2的平方累减

类题一:LM75A 温度传感器中的温度转换!
1、保留了两位小数点 value  =t*0.125;    0.125为 8分之一乘以100= 8分之100 t =value * 100; 相当于
t = (t << 6)+(t << 5)+(t << 2);         64        32      4         刚好为 100  t = t>>3;    相当于除 8
2、保留了一位小数点
value  =t*1.25;     1.25 为  4分之5  相当于  t = (t << 2) + t;           4     t = t >> 2;        
类题二:DS18B20 温度传感器中的温度转换!
1、保留了两位小数点 value  =t*0.0625;   
t =value * 100;             t = 1/16 * 100 = 25/4;
相当于
t = (t << 4)+(t << 3)+ t ;         16        8      1         刚好为 25
t = t>>2;    相当于除 4
2、保留了一位小数点
value  =t*0.628;     0.628 为  8分之5  相当于  t = (t << 2) + t;           4     t = t >> 3;  相当于除 8

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表