运算符学习时的笔记(其实也没什么用,留着给自己看的)

运算符 用来对数据运算的符号

优先级 3+4*5+6 先乘除 然后加减 运算符优先级高就先算

40多个运算符 15层优先级 不需要背
1.查表
2.用括号改变优先级
(3+4)*5+6

运算规则
1.算术运算符
加减乘除 + - * / 求余符号%
/ 除法 3/4 整数相除的结果仍然是整数 除完去掉小数部分
% 求余 只能整数之间 的求余 3%4 --->被除数-商*除数=余数
2.二进制运算符 用于整型
按位或 | 按位与& 取反~ 异或^
左移<<和右移>>运算符
(用8位二进制作为例子)
13 0000 1101
22 0001 0110

按位或| 两个数字 13|22= 0001 1111 运算规则 有1则1,无1则0
按位与& 两个数字 13&22= 0000 0100 有0则0
异或^ 两个数字 13^22=0001 1011 相同为0不同为1

取反~ ~22 1110 1001 二进制的所有位数 全部1变0 0变1(包括最高位)
(PS负数补码 取反加一码 ~22+1--->-22补码)
左移<< 22<<2 22左移两位 去掉22的二进制 前面2位 后面补两个0
22<<2--->01 0110 00-->88
一般 左移三位 相当于2^3 (成员8) 二进制 运算比乘法快
右移>> -22>>3 去掉后面的三位 然后前面补齐(补齐符号位 正数补0 负数前面补1)
1111 110 1 右移相当于除法 右移一位相当于除以2 (除法比较慢)

3.关系运算符

注意: 1.关系运算符的结果只能是0或1 2.关系运算符等于是两个= 不是一个

判断数字大小 满足条件1 不然结果为0 (分支 循环 )
大于> 小于< 大于等于>= 小于等于<= 不等于 != 等于==

3>4 0
5>4>3 0

逻辑运算符 串联两个条件
变量x 变量x大于3并且 x小于4
逻辑与 && x>3&&x<4 两边的条件都成立 最后结果是1 不然结果为0
逻辑或 || x大于3或者x小于4 x>3||x<4 两边条件有一个成立 结果是1 两边都不成立 结果为0
! 非 真变假 假变真 !1=0 !(3>4) ---->3<=4

组成一些复杂的条件 有或与非三个运算符 示例:计算当x=8的时候 3<x<7的结果 规则 逻辑或 两边条件都为假 最后的结果为假,有一边为真 结果为真 (有真则真) 逻辑与 有假则假 逻辑非 真变假 假变真 P.S. 1.或与非的条件 可以是关系运算符的表达式 或者用数字也行(0为假 非0为真) 2.截断 ||有真则真 所以只要左边的条件为真 右边的可以不判断 && 有假则假 所以左边的条件为假 右边可以不判断

可以用3>4 数字可以作为条件 (0为假 非0为真)
3||4 ---> 1
1>2&&3<4
补充知识点 : 截断 逻辑与 左边条件为假 右边式子不再计算
逻辑或 左边条件为真 右边式子不再计算

4.赋值运算符
= 赋值的意思 y=3 把3这个值赋给y 右值赋给左值 左值必须是变量
a+=n --->a=a+n a/=b--->a=a/b

5.三目运算符 ?:
条件?语句1:语句2 条件为真 执行语句1 条件为假 执行语句2
饿?吃饭:不吃饭

x=5>2?3:4 5>2条件成立 把3的值赋值给x 不成立 把4的值赋值给x

6.其他运算符
[] 数组里面讲
() 改变优先级
. -> 结构体那章讲

- 负号运算符 (单目) y=-x
强转 小数转换为整数 (int)3.14 (类型)值
*取值 解引用 指针讲到
& 取变量地址

sizeof(类型) 计算类型/变量大小 单位字节
逗号 表达式1,表达式2,表达式3 最后的结果是最后一个表达式的值

y=(1,2,3,4,5,6); y的结果是6

++ -- 自增 自减运算符

自增 给变量加1
自减 给变量减1

相同点 单独使用效果一样 给变量加1
不同点 前++快于后++
前++ ++x y=++x; 先加1 然后赋值 直接加1 立刻生效
后++ x++ y=x++ 先把x的值赋给y 然后x加1 延迟性buff
****************************************************************************************************************************************************************/

运算符优先级

或运算符的两边     0为假  非0为真    有真则真

2018.05.14    11:26:13

C++学习(五)(C语言部分)之 运算符的更多相关文章

  1. GO学习-(6) Go语言基础之运算符

    Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算. 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - ...

  2. Flutter学习笔记(5)--Dart运算符

    如需转载,请注明出处:Flutter学习笔记(5)--Dart运算符 先给出一个Dart运算符表,接下来在逐个解释和使用.如下:                            描述       ...

  3. ES6学习笔记(一)——扩展运算符和解构赋值

    前言 随着前端工程化的快速推进,在项目中使用ES6甚至更高的ES7等最近特性早已不是什么新鲜事.之前还觉得既然浏览器支持有限,那了解一下能看懂就好,然而仅仅了解还是不够的,现在放眼望去,那些成熟框架的 ...

  4. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  5. c语言学习书籍推荐《C语言学习路线图•C语言必须知道的300个问题》下载

    下载地址:点我 <C语言学习路线图•C语言必须知道的300个问题>以基础知识为框架,介绍了c语言各部分知识所对应的常见开发疑难问题,并作了透彻地解析.<C语言学习路线图•C语言必须知 ...

  6. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  7. GO学习-(19) Go语言基础之网络编程

    Go语言基础之网络编程 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程. 关于网络编程其 ...

  8. 值得学习的C语言开源项目

    值得学习的C语言开源项目   - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...

  9. c语言 &取地址运算符的理解

    对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&运算符不只是返回地址的功能: 例如: in ...

  10. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

随机推荐

  1. 【Java算法】求质数的算法

    计算100以内的质数 1.质数:大于1的整数中,只能被自己和1整除的数为质数. 如果这个数,对比自己小1至2之间的数字,进行求余运算,结果都不等于0,则可以判断该数为质数. public class ...

  2. java倒计时使用ScheduledExecutor实现,使用两个线程,以秒为单位

    public class Countdown2 { private volatile int lin; private int curSec; public Countdown2(int lin) t ...

  3. UVa 3602 - DNA Consensus String 水题 难度: 0

    题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...

  4. js中有哪几种函数?

    匿名函数,回调函数,递归函数,构造函数

  5. 用c++写一个数据库

    [cpp] view plain copy 第一步:构建一个头文件(**.h) [cpp] view plain copy #include<iostream> #include<i ...

  6. linux:ssh远程调用tomcat脚本时候出错

    我们都知道,使用ssh在另一台机子执行一个ssh文件的语句是酱紫的 ssh root@1.9.7.56 "chmod 777 /opt/script/tomcatStop.sh ; sh / ...

  7. 【资料搜集】Python学习

    python学习手册 | 演道网 http://dev.go2live.cn/python/python%e5%ad%a6%e4%b9%a0%e6%89%8b%e5%86%8c.html

  8. 反片语 UVA 156

    //该单词不能通过字母重排,得到输入文本中的另外一个单词.在判断是否满足条件时,字母部分大小写 #include<iostream> #include<vector> #inc ...

  9. Neo4J 教程

    好文转载: W3C: https://www.w3cschool.cn/neo4j/neo4j_cypher_api_example.html neo4j图数据库入门: http://blog.csd ...

  10. mybatis 异常 There is no getter for property named 'bizId' in 'class java.lang.Long'

    mybatis 异常 There is no getter for property named 'bizId' in 'class java.lang.Long' 当使用mybatis进行传参的时候 ...