0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

c语言摄氏度与华氏温度如何转换

姚小熊27 来源:电工之家 作者:电工之家 2019-11-24 11:16 次阅读

摄氏度与华氏度的转换公式为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。

早期的MicrochipPIC16F,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;

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128811
  • 摄氏度
    +关注

    关注

    0

    文章

    4

    浏览量

    3586
收藏 人收藏

    评论

    相关推荐

    华氏摄氏各种温度转换公式总结

    温度转换计算公式转换到公式9/5 = 1.8 9/4 = 2.25 10/8 = 1.25[size=-1]华氏温度摄氏温度 jk℃ = (
    发表于 10-22 15:31

    摄氏温度华氏温度显示

    摄氏温度华氏温度显示
    发表于 06-02 11:56

    labview如何通过按键选择温度显示的类型,如是摄氏温度还是华氏温度

    本帖最后由 Crystal6927 于 2015-9-2 11:24 编辑 labview如何通过按键选择温度显示的类型,如是摄氏温度还是华氏温度?比如按下按键,显示摄氏温度,再
    发表于 09-02 11:22

    求推荐工作温度-20摄氏度到60摄氏度左右的芯片!

    芯片主要实现:1.上电后,让与此电路连接的设备工作一段时间T1,然后停止一段时间T2,再工作一段时间T1,再停止T2。如此反复循环。T1、T2长短用户可调。可复位,复位回归上电时状态。 2.工作电压2V到5V左右3.工作温度-20摄氏度到60
    发表于 07-29 04:36

    华氏温度计电路

    华氏温度计电路
    发表于 02-07 02:15 480次阅读
    <b class='flag-5'>华氏温度</b>计电路

    华氏温度计电路图

    华氏温度计电路图
    的头像 发表于 04-13 09:26 2467次阅读
    <b class='flag-5'>华氏温度</b>计电路图

    华氏温度计电路图

    华氏温度
    发表于 04-28 19:57 635次阅读
    <b class='flag-5'>华氏温度</b>计电路图

    C语言入门教程-示例:编写能够打印华氏-摄氏温度转换表的程序

    示例:编写能够打印华氏-摄氏温度转换表的程序 假设您要编写一个能够打印华氏-摄氏温度转换表的程
    发表于 07-29 10:52 4937次阅读

    温度转换公式 (温度单位换算公式)

    华氏温度与兰金温标度的换算公式 R = F + 495.69 ; 式中 R-- 兰金温标度, F-- 华氏温度 摄氏温度
    发表于 07-14 12:18 8871次阅读

    温度转换计算公式

    本文提供比较详细的温度转换计算公式列表。附有摄氏温度(°C)/华氏温度(°F)转换器。
    发表于 03-08 17:56 3.1w次阅读

    华氏温度摄氏温度的换算表

    摄氏温度华氏温度的换算式是: 5(tF- 50)=9(tC-10) 式中tF——华氏温度,tC——摄氏温度
    发表于 11-11 14:03 1.5w次阅读

    华氏温度摄氏温度的换算公式,温度换算公式大全

    华氏温度把水的冰点定为32度,沸点定为212度,符号为F,而摄氏温度,冰点时温度为0摄氏度,沸点为100摄氏度。所以1
    发表于 09-06 18:04 3.6w次阅读

    华氏度与摄氏度的换算在线计算 温度转换公式大全

    本文提供华氏度与摄氏度的换算,华氏温度摄氏温度的在线转换与换算工具,各种不同温度计量单位的
    发表于 09-13 15:36 1.5w次阅读

    华氏温度摄氏温度换算 摄氏温度转换华氏温度计算公式

    华氏温度从字面上的字意表示,是可以显示华氏温度温度表上显示的温度数值(温度计),同样的,摄氏温度
    发表于 09-20 14:11 2.1w次阅读

    华氏温度换算公式及C语言转换程序代码

    华氏温标”是经验温标之一。在美国的日常生活中,多采用这种温标。规定在一大气压下水的冰点为32度,沸点为212度,两个标准点之间分为180等分,每等分代表1度。华氏温度用字母“F”表示。它与摄氏温度(C)和
    发表于 10-10 18:52 1w次阅读