博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运算符
阅读量:4598 次
发布时间:2019-06-09

本文共 3966 字,大约阅读时间需要 13 分钟。

一、算术运算符:+   -   *   /    %    ++    - -  

求余运算%模运算):符两边必须都是整型数据

取余运算使用场景:当要控制一个变量的取值在0~N之间的时候可以使用取模运算。只能是整数取模。模运算的正负只和第一个数的正负有关。

逗号运算符:是用来连接表达式的。逗号运算符的运算结果是最后一个表达式的值。int a,b;b=(a=5,a++,a*5);//结果b=30

 

注意:++或者--在前,先执行++--,例如:b = ++a;等价于a = a+1;b = a;++--在后,后执行++或者--对于除法,如果两个数都是整数,他们的结果也必然是整型的。

 

Demo:

#include 
int main(int argc, const char * argv[]) {        //输入时间的秒数,然后转换为多少分多少秒输出    //500  8分/20秒    //1.定义变量保存用户输入的整数    int time;    //2.接收用户输入的整数    printf("请输入:\n");    scanf("%d",&time);    //3.换算成分秒    int minute = time / 60;//分钟 8    int second = time % 60;//秒数    //4.输出到屏幕    printf("%d分/%d秒\n",minute,second);        return 0;}

二、复合运算符:+=     -=     *=     /=     %= 

位运算符&|~^<<>>   是对二进制的操作

按位与&:对应位一假则假

按位或|:对应位一真则真

按位异或^:对应位不同返回1,相同返回0

多个整数异或结果和顺序没有关系。

相同整数按位异或结果为0

任何整数按位异或上0结果还是你那个整数。

取反~01   1一个数的负数:取反加1

 

左移<<a << n 把整数a的二进制往左变移n位。 

左移多少位就是乘以2的多少次方。

左移有可能改变数值的正负性。

使用场合:当要计算某个数乘以2的多少次方的时候有左移效率最高。

 

右移>>:右移多少位就是除以2的多少次方,保持符号位不变。

使用场合:当要计算某个数除以2的多少次方的时候有右移效率最高

 

sizeof可以用来计算一个变量、常量、数据类型所占用的存储空间的大小。

注意:sizeof是一个运算符,不是一个函数。int num = sizeof(float); sizeof(10); sizeof 10;当计算的是数据类型的时候小括号不能省。

三、逻辑运算符:&&(逻辑与)     ||(逻辑或

BOOL数据类型,是一种表示非真即假的数据类型,BOOL类型的变量只有YESNO两个值。在C语言里,认为非0即为真。 

逻辑运算符,表达式的值是一个BOOL类型。

Demo1:

#include 
int main(int argc, const char * argv[]) {    int x,y,z;    x = y = z = 0;        ++x || ++y || ++z;    printf("%d %d %d\n",x,y,z);//1 0 0        return 0;}

控制台打印:

1 0 0

Program ended with exit code: 0

Demo2: 

#include 
int main(int argc, const char * argv[]) {    int x,y,z;    x = y = z = 0;        ++x || (++y && ++z);    printf("%d %d %d\n",x,y,z);//1 0 0        return 0;}

控制台打印:

1 0 0

Program ended with exit code: 0

Demo3:

#include 
int main(int argc, const char * argv[]) {    int x,y,z;    x = y = z = 0;        (++x || ++y) && ++z;    printf("%d %d %d\n",x,y,z);//1 0 0        return 0;}

控制台打印:

1 0 1

Program ended with exit code: 0

 

四、关系运算符:

(比较运算)>  >=  <  <=  ==  != 表达式的值是一个BOOL类型

注意:在以后开发当中但凡遇到比较一个变量等于或者不等于某一个常量的时候,把常量写在前面。

 

五、运算符的优先级:从高到低

优先级

描述

运算符

1

括号

()[]

2

正负号

+-

3

自增自减,非

++--!

4

乘除,取余

*/%

5

加减

+-

6

移位运算

<<>>>>>

7

大小关系

>>=<<=

8

相等关系

==!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=+=-=*=/=%=

16

位赋值运算

&=|=<<=>>=>>>=

 

 

六、判断奇偶性

Demo1: 

#include 
int main(int argc, const char * argv[]) {        //判断一个数的奇偶性    int temp;    printf("请输入一个数temp:\n");    scanf("%d",&temp);    if (temp % 2 == 0) {        printf("偶数\n");    }else{        printf("奇数\n");    }        return 0;}

控制台输出:

请输入一个数temp:

21

奇数

Program ended with exit code: 0

 

请输入一个数temp:

80

偶数

Program ended with exit code: 0

 

Demo2:

#include 
int main(int argc, const char * argv[]) {        //判断一个数的奇偶性    int temp;    printf("请输入一个数temp:\n");    scanf("%d",&temp);    //三目运算符    (temp % 2 == 0) ? printf("偶数\n") : printf("奇数\n");    temp % 2 ? printf("奇数\n") : printf("偶数\n");        return 0;}

控制台输出:

请输入一个数temp:

78

偶数

偶数

Program ended with exit code: 0

 

请输入一个数temp:

33

奇数

奇数

Program ended with exit code: 0

 

Demo3:

#include 
int main(int argc, const char * argv[]) {        //判断一个数的奇偶性    int temp;    printf("请输入一个数temp:\n");    scanf("%d",&temp);    //位运算符    /*     9   1001     11  1011          10  1010     12  1100          特点:奇数的最后一位都是1,偶数都是0          1000     0001     -------     0000     */    if ((temp & 1) == 1) {        printf("奇数\n");    }else{        printf("偶数\n");    }        return 0;}

控制台输出:

请输入一个数temp:

33

奇数

Program ended with exit code: 0

 

请输入一个数temp:

34

偶数

Program ended with exit code: 0

 

七、大写字母转小写

Demo:

#include 
//大写字母变为小写的算法:char lower(char myC){    if (myC >= 'A' && myC <= 'Z') {        return myC + ('a' - 'A');//myC + 32    }    return myC;}int main(int argc, const char * argv[]) {        char ch = 'a';    printf("输入字符ch:\n");    scanf("%c",&ch);    printf("%c\n",lower(ch));        return 0;}

控制台输出:

输入字符ch:

A

a

Program ended with exit code: 0

 

转载于:https://www.cnblogs.com/M-Y-P/p/5013953.html

你可能感兴趣的文章
UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
查看>>
多种方法求解八数码问题
查看>>
spring mvc ModelAndView向前台传值
查看>>
(黑客游戏)HackTheGame1.21 过关攻略
查看>>
Transparency Tutorial with C# - Part 2
查看>>
android 文件上传
查看>>
ASCII 码表对照
查看>>
javascript的DOM操作获取元素
查看>>
Shuffle'm Up(串)
查看>>
20145219 《Java程序设计》第06周学习总结
查看>>
C# 执行bat文件并取得回显
查看>>
基于YOLO的Autonomous driving application__by 何子辰
查看>>
javascript中的继承
查看>>
iOS-如何写好一个UITableView
查看>>
如何在Objective-C中实现链式语法
查看>>
select2 下拉搜索控件
查看>>
WebAPI常见的鉴权方法,及其适用范围
查看>>
08. 删除重复&海量数据
查看>>
重新想象 Windows 8 Store Apps (71) - 其它: C# 调用 C++
查看>>
发布mvc遇到的HTTP错误 403.14-Forbidden解决办法
查看>>