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

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

优先级 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. CAD绘制扶手5.6

    用PL命令绘制出扶手的位置,如图 , “楼梯其他”“添加扶手”选择这条线,扶手宽度60,高度900,中间对齐.生成如图: 三维:

  2. Python自然语言处理---信息提取

    1.数据 目前的数据总体上分为结构化和非结构化的数据.结构化的数据是指实体和关系的规范和可预测的组织.大部分的需要处理的数据都属于非结构化的数据. 2.信息提取 简言之就是从文本中获取信息意义的方法. ...

  3. do_bootrk

    1. LMB (logical memory blocks) lmb为uboot下的一种内存管理机制,用于管理镜像的内存.lmb所记录的内存信息最终会传递给kernel.在/include/lmb.h ...

  4. python 进程创建和共享内容的方法

    1.使用Pool来创建进程 from multiprocessing import Pool def f(n): return n*n if __name__=="__main__" ...

  5. h5视频配置

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. centos7下nginx安全配置

    Linux服务器下nginx的安全配置   1.一些常识 linux下,要读取一个文件,首先需要具有对文件所在文件夹的执行权限,然后需要对文件的读取权限. php文件的执行不需要文件的执行权限,只需要 ...

  7. ylz外网连接ESB流程

    先在指定目录下写Controller,在目录下com.ylzinfo.controller.zhizhi package com.ylzinfo.controller.zhizhi; import j ...

  8. dos命令:文件操作

    文件操作 一.assoc命令 1.介绍 显示或修改文件扩展名关联 2.语法 ASSOC [.ext[=[fileType]]] .ext     指定跟文件类型关联的文件扩展名 fileType 指定 ...

  9. 初识linux------用户和用户组

    事先说明 本Linux的版本为Ubuntu. 为避免一些初学者由于权限问题特此事先说明,在非root权限下时,所有的代码加sudo:如下 (1)不在root权限 sudo useradd -m 用户名 ...

  10. 终止TTask.Run启动的线程

    unit Unit15; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...