华摄氏度和摄氏度的转换 华摄氏度转化摄氏度 使用带运算的宏定义

定义:

摄氏度:CELSIUS EQUALS

华氏度:FAHENHEIT EQUALS

彼此间的转换很容易,如下:

将摄氏度转成华氏度:将摄度以氏直接乘以9,除5,再加上32

华氏度转成摄氏度:将华氏度减去32,乘以5再除以9

写成公式:

CelEquVal --摄氏度

FahEquVal-- 华氏度

摄氏度转成华氏度:

FahEquVal
= CelEquVal  * 9 / 5 + 32;

华氏度转成摄氏度:

CelEquVal
 =(FahEquVal -
32) * 5 / 9;

公式看起来简单吧,但一步小心就掉陷阱了,哈哈。具体再看:

FahEquVal  >= 32

摄氏度转成华氏度:

#define   CelToFah(CelEquVal)
(unsigned char )(CelEquVal  * 9 / 5 + 32)

华氏度转成摄氏度:

#define  FahToCel(FahEquVal )
(unsigned char )((FahEquVal - 32)
* 5 / 9)

看出问题了吗?伙伴们,这个问题有点隐蔽哦,再仔细瞧瞧。我的答案在底部,希望您能看出问题,然后就看看我的分析吧。嘻嘻。

这是我的分析了:

程序在运行 CelEquVal  * 9  或者 (FahEquVal -
32) * 5 后,有可能溢出,即超出255了,因此,结果就不是我们想要的,知道为什么了吧。修改后没有BUG的写法:

摄氏度转成华氏度:

#define CelToFah(CelEquVal
)(unsigned int )(CelEquVal  * 9 / 5 + 32)

华氏度转成摄氏度:

#define  FahToCel(FahEquVal )(unsigned
int)((FahEquVal - 32)
* 5 / 9)

华摄氏度和摄氏度的转换 华摄氏度转化摄氏度 使用带运算的宏定义

时间: 2024-10-23 07:49:47

华摄氏度和摄氏度的转换 华摄氏度转化摄氏度 使用带运算的宏定义的相关文章

自定义类库:Java转换xml文件转化pojo工具

一.之前java读取xml配置文件时,总是通过dom4j第三方库主动解析,最近发现可以通过jdk类库将xml转换pojo. 二.编写xml转化工具类XmlUtils package com.moy.demo.common.utils; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import java.io.InputStream; import java.io.Reader; import jav

将C语言宏定义数值转换成字符串!

将C语言宏定义转换成字符串! 摘自:https://blog.csdn.net/happen23/article/details/50602667 2016年01月28日 19:15:47 六个九十度 阅读数:10185 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/happen23/article/details/50602667 适用场景举例 流媒体处理系统中,采样率是个很重要的参数,很多地方都要用,如果用来分配内存,则 #define S

广州深华成为德国IKA/艾卡华南区总代理

广州市深华生物技术有限公司成为德国IKA/艾卡华南区总代理,负责IKA/艾卡仪器设备有限公司部分产品(磁力搅拌器.混匀器.离心机.干浴器等)在广东的代理.销售.授权.维护.欢迎广大客户咨询广州深华公司有关IKA的产品详情. 更多IKA产品详情请点击:http://www.zhyico.com/pinpaiview.asp?id=304 IKA集团创建于1910年,原名Janke & Kunkel.坐落于德国西南部靠近法国与瑞士边境的著名的黑森林山麓.一直致力于高品质实验室仪器.量热分析仪器及混合

十六进制内所有进制转换!!!!速度快,运算简单,java

import java.util.Scanner; public class P2031 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char chs[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//最大十六进制所有的数 while(sc.hasNext()){ int n = sc.n

常用宏定义 - 由角度转换弧度、由弧度转换角度

1.角度转换弧度 #define CHDegreesToRadian(x) (M_PI * (x) / 180.0) 2.弧度转换角度 #define CHRadianToDegrees(radian) (radian*180.0)/(M_PI) 原文地址:https://www.cnblogs.com/CH520/p/9311409.html

C中变量名通过宏定义转换成char*类型字符串

#include <iostream> p>define name_to_str(name)(#name) int main() { int sum = 10; std::cout<<name_to_str(sum)<<std::endl;//调用宏输出char*型“sum” system("pause"); return 0; }

PTA-7-20 表达式转换(中缀转后缀,带括号,负数,小数转换)

本题考点:中缀表达式转后缀表达式. 难点: 带有小数的数字 数字可能带有正负号 题目描述: 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间.请设计程序将中缀表达式转换为后缀表达式. 本题的测试点如下: 输入 输出 说明 2+3*(7-4)+8/4 2 3 7 4 - * + 8 4 / + 正常测试6种运算符 ((2+3)*4-(8+2))/5 2 3 + 4 * 8 2 + - 5 / 嵌套括号 1314+25.5*1

基于多种转换语义的图数据库查询

1. 摘要 因为图数据库的复杂模式和不同的信息描写叙述方式,对于非专业用户来说查询复杂的图数据库是异常困难的. 一个好的图查询引擎应该支持多种转化--同义词.缩略词.简写以及本体等等,而且应该可以对搜索结果进行一个非常好地排序. 基于此问题本文提出了一种新型的查询框架来方便用户查询,解放了为构造查询图而抓耳挠腮的用户群. 2. 应用背景 2.1 应用 图数据库也是一种流行的数据存储方式.如知识图.信息网络以及社交网络等应用的数据都存储在图数据库中.由于图数据的无模式或者模式太复杂以及信息的多种描

C语言中单井号(#)和双井号(##)在宏语句中的应用

作者:华清远见讲师 在阅读Linux内核代码过程中,特别是一些预处理指令宏的时候,会看到宏语句里会包含一些# 或者是连着的## 符号,刚接触的时候觉得很一头雾水,但这些宏语句有时候绕不开,所以为了更好地读懂这些代码,很有必要仔细学些一下这些特殊符号的含义. # 的功能 # 的功能是将其后面的宏参数进行字符串化操作(stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号. 1. #define WARN_IF(exp) \ 2. do { \ 3. if