描述

摄氏度与华氏度的转换公式为C=(F-32)*5/9。

不少人看到这样的转换公式就会将摄氏度C和华氏度F定义成浮点数类型的变量。

然后采用C语言编写

C=(F-32)*5/9的语句进行转换。

如果在带有浮点数高级处理器上运算、或者是对实时性没有要求,不在乎该转换所耗费的时间,则没有任何问题。

但是如果该程序运行在普通的单片机,而且该单片机除了要进行转换之后,还有其它实时性要求高的任务需要处理。比如需要快速进行故障判断并进行保护,或者是需要进行通信数据处理,快速响应。

比如需要进行输出短路的保护判断,有些输出的短路可能需要在几百us内进行保护,否则可能损坏器件,如果该转换耗时几ms以上,可能就会导致响应不及时,造成器件损坏。

所以当程序运行在普通的单片机时,我们还需要考虑该单片机是否支持硬件的浮点数运算,甚至要考虑是否有硬件的乘法器。

普通的单片机不支持硬件浮点数运算,浮点数的四则运算可能需要软件算法实现,会花费大量的时间。

这种情况,我们可以根据精度和量程要求,放缩之后,将C和F定义为整型的变量,再进行运算。

比如,如果我们取1位小数的精度,量程为100摄氏度,

则可以将C和F定义为16位的整型,采用下列的程序进行转换;

signed short C, F;

C=(F-32)*50/9。

早期的Microchip的PIC16F,PIC18F系列的处理器,没有硬件乘除法器,进行乘除法运算,都需要通过软件算法实现,可能耗费几十ms的时间。

这种情况我们可以通过加法和移位操作实现;

*5/9约等于36408/65536=(32768+2048+1024+512+32+16+8)/65536;

将C定义为32位的整型。

signed int C, d1,d2;

d1=F-32;

d2=d1 《《 3;//*8

d1 = d1 《《1;//*16

d2 += d1;

d1 = d1 《《 1;//*32;

d2 += d1;

d1 = d1 《《 5;//*512;

d2+= d1;

d1 = d1 《《 1;//*1024;

d2 += d1;

d1 = d1 《《 4; //*32768

d2+= d1;

C=d2》》16;

这样可以大大节省转换时间。

首先,我们要理解需求,就像你问的“摄氏度与华氏温度如何转换”,然后就是设计,简单点就是使用怎样的公式算法来解决问题,

“摄氏温标”是经验温标之一,亦称“百分温标”。温度符号为t,单位是摄氏度,国际代号是“℃”

华氏温标”是经验温标之一。在美国的日常生活中,多采用这种温标。规定在一大气压下水的冰点为32度,沸点为212度,两个标准点之间分为180等分,每等分代表1度。华氏温度用字母“F”表示。它与摄氏温度(C)和之间的换算关系为F=9/5c+32, 或C=5/9(F-32)。

现在转换公式已经有了,就是编码实现了。

代码:

#include 《stdio.h》

int main(void)

{

float F,C;

print(“华氏度--摄氏度转换器\n”)

printf(“请输入您需要转换的华氏温度:”);

scanf(“%f”,&F);

C = (F-32)*5/9.0;

printf(“其对应的摄氏温度为:%.2f \n”,C);

return 0;

}

打开APP精彩内容

点击阅读全文

华氏温度转摄氏温度c语言作业,c语言摄氏度与华氏温度如何转换相关推荐

  1. pta c语言作业,C语言PTA平台习题与答案

    第二章作业 1 ①.本题要求编写程序,输出一个短句"Welcome to You!" #include int main() { printf("Welcome to Y ...

  2. 华师c语言作业,C语言程序设计(华师在线作业)1.doc

    C语言程序设计(华师在线作业)1 本学期作业以附件形式完成1. 完成一个大小写字母自动转换的程序,输入大写字母,程序可以输出小写字母,输入小写字母,可以输出大写字母2. 用三种循环方式实现1-100的 ...

  3. 自动批改c语言作业,C语言 选择题功课批改

    C语言 选择题作业批改 输入 第一行包含2个整数n,k,分别表示本次考试中试选择题的个数和每个选择题的分值.第二行包含一个长度为n的字符串,表示标准答案.第三行包含一个整数s,表示试卷的份数.其下的s ...

  4. 反弹c语言作业,C语言实现反弹球小游戏

    本文为大家分享了C语言反弹球游戏的具体代码,供大家参考,具体内容如下 这是利用函数写的C语言小游戏,用来检验自己的学习成果 反弹球的实现主要有几个子函数组成 问题也在于如何实现小球的下落,以及碰撞得分 ...

  5. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  6. 输出教师信息c语言作业,C语言教师管理系统代码(最新整理)

    <C语言教师管理系统代码(最新整理)>由会员分享,可在线阅读,更多相关<C语言教师管理系统代码(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.include #incl ...

  7. 订单查询系统c语言作业,C语言设计订单管理系统答题.doc

    PAGE \* MERGEFORMAT30 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 15 ...

  8. 图书馆系统c语言作业,C语言图书馆管理系统课程设计报告

    <C语言图书馆管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言图书馆管理系统课程设计报告(16页珍藏版)>请在人人文库网上搜索. 1.高级语言程序设计课程设计报告 ...

  9. 停车场管理系统C语言作业,c语言课程设计报告停车场管理系统

    c语言课程设计报告停车场管理系统 C 语言课程设计报告 --停车场管理 1 班 级: 192102 学 号: 20101003907 姓 名: 聂 彪 指导教师: 张冬梅 时 间: 2011 年 6 ...

  10. 湖南师范大学c语言作业,c语言上机实验(湖南师范大学).ppt

    c语言上机实验(湖南师范大学) 实验内容 实验1: 熟悉上机环境和顺序结构编程练习--键盘输入与屏幕输出练习 问题1:要使下面程序的输出语句在屏幕上显示1,2,34,则从键盘输入的数据格式应为以下备选 ...

最新文章

  1. 2021.4.7 美团买菜后端开发实习生(二面)(含总结)(已oc)
  2. html标签的id中带有.号的获取方式
  3. mysql 写 性能,MySQL在大型,只写表上的性能
  4. 自动化运维——一键安装MySQL
  5. 数据库外键的使用原则
  6. 【Linux】 iptables vs firewalld
  7. boost::geometry::strategy::distance::haversine用法的测试程序
  8. 计蒜客NOIP模拟D1T2
  9. Drchen的学习清单
  10. Exchange 2013SP1和O365混合部署系列二
  11. JavaScript的DOM编程--01--js代码的写入位置
  12. php反向解析域名,域名系统 – Cloudflare,反向DNS和php邮件,最终在垃圾邮件文件夹中...
  13. hive优化--增加减少map数
  14. better-scroll使用的坑与心得
  15. visio2013剪除_Visio 2003 图形剪切合并 高级技巧
  16. 企业服务总线(EnterpriseServiceBus,ESB)
  17. 计算机实验室行政助理职责,【实验室助理工作内容|工作职责|实验室助理做什么】-看准网...
  18. 浅谈道路交通事故车辆安全技术鉴定
  19. 腾讯 X5 不能加载内核
  20. 十大畅销经济学类书籍

热门文章

  1. Java FileReader读文件
  2. c语言5名同学3门课程成绩,输入5名同学3门课程的成绩 求: 1)每门课程的平均成绩。2)找出最高分数所对应的学生和课程。...
  3. 微信小程序比较用户微信客户端版本号
  4. python爬虫案例(2)
  5. 微信公众号搜索公众号列表 API
  6. linux五种子系统,Ubuntu 下五个最好的 BT 客户端
  7. 电源设计经验之 MOS 管驱动电路
  8. SVN 文件夹图标不显示问题的解决办法
  9. [汇编语言]立即数寻址和寄存器寻址
  10. python金融衍生品有哪些_什么是金融衍生品,金融衍生品有哪些?