Part 0:概念

表达式:表达式是由非赋值运算符或特殊运算符和值组成的,每个表达式都可以计算出一个值


Part 1:非赋值运算符

§1.1 基本的运算符

基本的运算符有+,-,*,/,%

我相信你除了%应该能看得懂

%运算是求余数的运算,具体请看:这篇文章的Part 0部分

怎么用呢?举例介绍:

int a=1,b=2;
a+b;//3
a-b;//-2
a*b;//2
a/b;//1/2
b%a;//0

§1.2 关系运算符

关系运算符描述几个量之间的关系,他们是:==,!=,>,<,>=,<=

解释一下:===!=,>=,<=

§1.3 逻辑运算符

逻辑运算符主要用于判断当中,他们包括:&&,||,!

接下来请记住概念:

只要a,b有一个为假,a&&b即为假

只要a,b有一个为真,a||b即为真

如果a为真,则!a为假;如果a为假,!a则为真

请注意!真假在bool类型中只能为1和0,但是对于其他变量,只要不为0即为真

§1.4 位运算符

这些运算符是最难懂的运算符,因为他们针对的是二进制的。他们是:&,|,^,<<,>>,~

若a,b的二进制的同一位上为0,则a&b中,这一位为0

若a,b的二进制的同一位上为1,则a|b中,这一位为1

^和&为互逆的运算

~a表示把a的每一位取反(0改为1,1改为0)

上面的三个运算符会针对一个数的二进制的每一位单独操作,假设a的二进制有4位,则若a参与&运算,&要判断4个位上的数,最后把四次的结果组合为一个新的数字,举个例子:

假设a=1100,b=0011(二进制),求a&b

第1次:a的第一位1和b的第一位0运算:1 & 0 = 0

第2次:a的第一位0和b的第一位1运算:0 & 1 = 0

第3次:a的第一位1和b的第一位0运算:1 & 0 = 0

第4次:a的第一位0和b的第一位1运算:0 & 1 = 0

组合结果,a&b=0000(二进制)

接下来的运算,是针对一个数的二进制进行操作:

a>>b表示,把a的每一位向右移动b次,溢出的数字舍去,空缺的位用0补全

a<<b表示,把a的每一位向左移动b次,溢出的数字舍去,空缺的位用0补全

举个例子:假设a=1111(二进制):


Part 2:赋值运算符

由于非赋值运算符并不会改变值,如果你想a加一,你要写a = a+1

有了赋值运算符,就简单的多了!

除了逻辑运算符,上面谈到的非赋值运算符后缀=即为赋值运算符了:

  • => +=
  • => -=
  • => *=

    / => /=

    % => %=

    & => &=

    | => |=

    ^ => ^=

=> >>=

<< => <<=

~ => ~=


Part 3:特殊运算符

特殊运算符并不是用来计算的,他们包括:sizeof(),&,*,?:

sizeof(a)用来返回变量a所占的字节大小

&,*为指针运算符,此时他们左边没有数值&p来返回一个变量p在计算机内储存的地址,*p返回指针p指向的地址所储存的值

a?x:y中,a是一个表达式,如果表达式为真,则a?x:y的值为x;否则,a?x:y的值为y

最新文章

  1. eclipse遇到不会部署的情况
  2. ACM/ICPC 之 网络流入门-Ford Fulkerson与SAP算法(POJ1149-POJ1273)
  3. IOS 加载Xib 后 如何 动态修改xib中的控件frame
  4. Monkey学习(1)环境搭建
  5. [LeetCode] #167# Two Sum II : 数组/二分查找/双指针
  6. HTTP - Session 机制
  7. UVa 10465 Homer Simpson (枚举)
  8. ios专题 - CocoaPods - 安装
  9. linux目录权限小记
  10. Angulajs 表单的ng-model绑定
  11. RACSignal的Subscription深入
  12. 关于log4.net 错误,求解
  13. 浅谈对ST表的一些理解
  14. Android样式(style)和主题(theme)
  15. Chipmunk僵尸物理对象的出现和解决(一)
  16. Redis5.0+哨兵模式+Keepalived实现高可用
  17. mssql 系统函数-字符串函数专题--字符串函数大全
  18. P3146 [USACO16OPEN]248 &amp; P3147 [USACO16OPEN]262144
  19. centos实现两种秒级任务的简单方法
  20. Java按键事件KeyEvent

热门文章

  1. How To Configure NFS Client on CentOS 8 / RHEL 8
  2. 洛谷 P2426 删数
  3. docker 后台运行和进入后台运行的容器
  4. ipv6_RIPng配置
  5. zerone 01串博弈问题
  6. 一个swift版简单的用户名和密码输入textField
  7. XML 之 语法详解
  8. Python MySQL Order By
  9. Docker NGINX 例子
  10. ACM-可乐兑换