51单片机c语言除法符号,51单片机之C语言-4.4运算符及表达式
原标题:51单片机之C语言-4.4运算符及表达式
4.4 及
前面三节实际是讲如何定义一个数据类型,所谓数据类型其实就是不同存储空间的形状,也就是不同单元格的组合方式。既然定义了数据类型,我们的目的当然是如何使用它们,比如赋值,比较大小,移位变化,等待。简单的讲就是”谁”-数据类型, “怎么样”-如何运算。往我们定义的单元格中填充内容。既然要运算当然有配套的运算符和表达式,现在将各种运算符及表达式总结如表4-4-1所示。
这里我们选取几个在编程中比较常见的运算符进行讲解。
(1) 自增运算和自减运算
对于运算符相信大家非常熟悉,这里不细讲。值得提醒一下的是,自增和自减运算符,
++a: a的值先增加1后,再参与其他运算
a++: a的值先参与其他运算,再使a的值增加1
--a: a的值先减小1后,再参与其他运算
a--: a的值先参与其他运算,再使a的值减小1
这里我们举一个例子:
a = 1;
b = 0;
a = ++b;
与
a = 1;
b = 0;
a = b++;
现在我们在VS2013中验证一下输出结果,
#include
void main(void)
{
int a, b;
a = 1;
b = 0;
b = a++;
printf("a=%d\nb=%d\n",a,b);//输出结果a=2,b=1
a = 1;
b = 0;
b = ++a;
printf("a=%d\nb=%d\n",a,b);//输出结果a=2,b=2
system("pause");
}
(2) 赋值运算
赋值运算符很好理解,需要注意的是书写形式,比如
a = a + 1;
很多情况下我们看到的表达式是把运算符”+”放到”=”前面,然后把第二个a去掉
a += 1;
(3) 关系运算符
在关系运算符中,在比较a与b是否相等的时候,使用a==b,这里容易漏掉一个等号
而a=b表示把b的值赋给a
(4) 逻辑运算
参加逻辑运算的对象,用”0”表示假,用”非0”表示真.
逻辑运算的运算规则可见的归纳为:
逻辑与-同真为真,逻辑或同假为假,逻辑非遇假变真,遇真变假
(5) 位运算
左移的规则是将二进制数向左移动若干位,左边移走的高位被丢弃,右边被空出来的低位补零。
右移的规则是将二进制数向右移若干位,右移与被移动的数据是否带符号有关。对于无符号整数来讲,左端空出的高位全部补0.
这里我们不讨论带符号的位移
例4-4-1 通过位移的方法创建流水灯
#include "reg52.h"
typedef unsigned char uchar;
void delayUs(uchar t);
void delayMs(uchar t);
void main(void)
{
uchar =0X80;//10000000
uchar i;
while(1)
{
for (i=0;i<8;i++)
{
P1= ~LED;//按位非
LED>>=1;
delayMs(100);
}
LED=0X80;
}
}
void delayUs(uchar t)
{
while(--t);
}
void delayMs(uchar t)
{
while(--t)
{
delayUs(245);
delayUs(245);
}
}
(6) 逗号和条件运算符
逗号运算符是所有运算符中优先级最低的,运算的结果值是最后一个表达式的值。例如:
int a,b,c,d;
d=(a=1,b=a+2,c=b+3);
printf("d=%d\n",d)
那么以上输出的结果为6. 在很多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用与循环语句(for 语句)中。
例如:
for(s=0,i=1;i<=100;s+=i,i++)
条件表达式的一般形式为:
表达式1 ? 表达式2 : 表达式3
条件表达式中含有三个操作对象,它们都是表达式。一般,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,根据条件的真假判断是进行表达式2的运算还是进行表达式3的运算。表达式2和表达式3可以是常量,变量或表达式如算术表达式,关系表达式,赋值表达式和逻辑表达式等。
一般情况下,条件表达式与结构程序设计中的if语句可以进行相互替换。
例如:
max = (a>b) ? a : b
用if语句表示为:
if (a>b)
{
max=a;
}
else
{
max=b;
}
但不是所有的条件语句都能替换,比如
if (a>b)
{
printf("%d",a);
}
else
{
printf("%d",b);
}
这里不能使用以下语句替换,
a>b?printf("%d",a) : printf("%d",b);
为什么?因为条件表达式的结果是一个值,要将这个值赋给一个变量或以一个值的形式输出,而上面的形式表示的是,如果a>b为真,就将a以整型的形式输出,否则将b以整型的形式输出,而在实际编程过程中无法将其值输出。
表4-4-1 运算符及表达式总结表
责任编辑:
51单片机c语言除法符号,51单片机之C语言-4.4运算符及表达式相关推荐
- 51单片机c语言除法符号,单片机c语言教程:C51运算符和表达式
上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧.这个语句就是 typedef,这是个很好用的语句,但我却不常用它,通常我定义变量的数据类型时都是使 用标准的关键字,这样别人能很方便的 ...
- c语言注释符号 井号,读c语言深度剖析 -- 符号 注释符号
标准C语言的基本符号 ,逗号 >右尖括号 . 圆点 !感叹号 :分号 | 竖线 :冒号 /斜杠 ?问号 \反斜杠 '单引号 ~波折号 "双引号 #井号 ...
- c语言常用符号优先级问题,【C语言】符号优先级
一. 问题的引出 今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错. 题目:如下函数,在32bit系统foo(2^31-3)的值是: Int foo(int x) { return x&a ...
- 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法
01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍 Java概述.helloworld案例 工 ...
- c语言中符号起什么作用,C语言中的符号 和 | 是什么意思?
&: 在C语言中有两种意思,一种是取地址符,是单目运算符:另一种是位运算符,表示"按位与",是双目运算符.|: 是位运算符,表示"按位或". 资料扩展 ...
- c语言无符号整型右移,c语言 java 有符号数,无符号数. 左移,右移运算
1: c语言区分有符号数,无符号数.有符号数是符号位在首位,无符号数首位就是普通位数. java只有有符号数,换句话说java二进制中首位都是符号位.0正1负. 2: 左移在所有语言中只是左移,不存在 ...
- c语言除法在全局区,深入C语言内存区域分配(进程的各个段)详解
C语言可执行代码结构 名称 内容 代码段 可执行代码.字符串常量 数据段 已初始化全局变量.已初始化全局静态变量.局部静态变量.常量数据 BSS段 未初始化全局变量,未初始化全局静态变量 栈 局部变量 ...
- c语言多行注释的是,c语言多行注释符号是什么_后端开发
浅谈PHP面向对象的继承_后端开发 本篇文章给大家介绍一下PHP面向对象的继承.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. c语言多行注释符号是什么? c语言多行注释符号是&qu ...
- c语言常数-ox6a是什么意思,C语言第2讲-数据类型运算符和表达式.pdf
C语言第2讲-数据类型运算符和表达式 高级语言程序设计 (C Programming) 丁嵘 第二讲:数据类型.运算符和表达式 本章目录 2.1 基本符号 2.2 C语言的数据类型 2.3 ...
最新文章
- caffe在线可视化(转)
- awk或者sed识别和替换数据中最后一列的缺失值(转载)
- Android11MIUI12,安卓11版MIUI12来了,3款已适配
- layer弹出层扩展自定义样式
- SpringCloud工作笔记103---Mybatis-plus使用注解 @TableField(exist = false) 注明非数据库字段属性
- ubuntu下python3及idle3的安装
- 动物行为检测计算机视觉_当动物行为研究遇见机器视觉——“红外热成像+计算机视觉”动物行为研究系统...
- 重磅!容器存储解决方案蓝皮书发布
- 51单片机——多文件的建立
- 兰勃特等角圆锥(Lambert Conformal Conic)投影正反变换
- 【转载】设备\Device\Harddisk0\D 有一个不正确的区块
- 复杂 Excel 表格导入导出的最简方法
- 《费曼学习法》读书笔记
- 机器学习——DEAP数据集
- 仿【咪咕动漫】列表下拉刷新上拉加载
- 鸿海精密收购东芝闪存业务志在必得 或出价270亿美元
- 2020张宇1000题【好题收集】【第四章:多元函数微分学】【第五章:二重积分】
- 高德地图插件的简单使用
- Linux设置ip地址不更改
- 8卡gpu服务器是8个芯片,北京8卡GPU服务器厂商
热门文章
- 学python多大年龄可以学车_考驾照的最小年龄,多少岁可以考驾照
- 使用hexo+github pages搭建博客
- 计算机图形学【GAMES-101】13、光场、颜色与感知
- 服务器导购:选购服务器应看哪些配置参数
- thinkphp6 404找不到网页错误常见情况总结(持续更新)
- CocosCreator 打包微信小游戏
- Zhong__Python lambda()
- Unity 使用LineRenderer做画线游戏
- 宝塔Linux面板配置教程
- python求几何平均_R语言的几何平均数,调和平均数,平方平均数