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

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

优先级 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. 逆袭之旅.DAY08东软实训.多态~

    2018年7月4日

  2. relativeURL 相对URL的坑

    我正在尝试实现一个使用RestKit的iOS应用程序.在我迄今为止看到的所有示例中,以下代码用于创建URL: NSURL *baseURL = [NSURL URLWithString:@" ...

  3. Linux 目录配置标准:FHS

    目录 应放置内容 /bin 和/user/目录下的/bin/都是用来保存的系统命令 /sbin 和/user/目录下的/sbin是用来保存root的系统命令 /boot 这个目录主要放置开机所用的文件 ...

  4. 输入系统:epoll & inotify

    一.epoll 作用:检测一个或多个文件的可读.可写等属性变化: 代码示例: #include <sys/epoll.h> #include <stdio.h> #includ ...

  5. 无法获取 vmci 驱动程序版本: 句柄无效

    https://jingyan.baidu.com/article/a3a3f811ea5d2a8da2eb8aa1.html 将 vmci0.present = "TURE" 改 ...

  6. 获得本机Ip地址

  7. WinPcap是用于网络封包抓取的一套工具

    WinPcap是用于网络封包抓取的一套工具,可适用于32位的操作平台上解析网络封包,包含了核心的封包过滤,一个底层动态链接库,和一个高层系统函数库,及可用来直接存取封包的应用程序界面. Winpcap ...

  8. angular2架构详解

    参考  http://codin.im/2016/09/18/angular2-architecture-intro/ http://www.tuicool.com/articles/EvEZjmZ ...

  9. synchronized(三)

    package com.bjsxt.base.sync003; /** * 对象锁的同步和异步问题 * @author alienware * */public class MyObject { pu ...

  10. Oracle create tablespace 、create user and so on

    1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_ ...