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

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

优先级 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. 【基础】selenium中元素定位的常用方法(三)

    一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单, ...

  2. Win10系列:JavaScript小球运动示例

    通过前面内容的学习,相信读者已经对开发基于JavaScript的Windows应用商店应用有了一定的了解,本小节通过一个小球运动的示例来介绍如何新建一个JavaScript的Windows应用商店项目 ...

  3. day30-python阶段性复习四

    九.函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 降低编程难度 代码重用 可以通过函数名在程序的不同地方多长执行,这通常叫函数调用(.). 预定义函数 可 ...

  4. MYSQL数据库字母数字混合字段排序问题

    对MySQL数据表里的一个字符型字段排序,其内容格式为一位字母+顺序数字.数字没有前导零,长度不固定.这种含字母的数字序列,排序出来的结果和我们想要的结果是不一样的,因为它不是纯数字,只能按字符规则排 ...

  5. 读书笔记 C# yield return与yield break执行顺序的浅析

    yield return可一次返回一个元素,并保留当前在代码中的位置,下次调用当前迭代器函数时,将从该位置从新执行.也就是说执行了yield return的时候,迭代器函数就返回了一个元素给forea ...

  6. L1-055 谁是赢家

    某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和 3 名评委投票两部分共同决定.规则为:如果一位艺人的观众票数高,且得到至少 1 名评委的认可,该艺人就胜出:或艺人的观 ...

  7. Android:AndroidManifest.xm中xmlns的作用

    有了它,你就可以alt+/作为提示,提示你输入什么,不该输入什么,什么是对的,什么是错的,也可以理解为语法文件.或者语法判断器什么的 这个主要作用是在运行的时候那些控件的属性都是通过它来识别的,如果上 ...

  8. CentOS部署PHP环境

    1.安装apache yum -y install httpd httpd-devel 2.启动apache systemctl start httpd.service 检查apache状态 syst ...

  9. Spring、Commons的BeanUtils.copyProperties用法

    如果两个对象A.B的大部分属性的名字都一样,此时想将A的属性值复制给B,一个一个属性GET\SET代码量太大,可以通过复制属性的方式减小工作量,同时代码看起来更加简洁明了,复制属性可以用Spring或 ...

  10. Kaggle:Home Credit Default Risk 数据探索及可视化(1)

    最近博主在做个 kaggle 竞赛,有个 Kernel 的数据探索分析非常值得借鉴,博主也学习了一波操作,搬运过来借鉴,原链接如下: https://www.kaggle.com/willkoehrs ...