平常生活中的加减乘除,其实就是操作符(它们一出现,我们就知道与它相关联的数据要进行什么操作)
在编程中 它们被称算术操作符(编程中没有 ➗ 用/来代替 没有 ✖ 用 * 来代替)
值得一提的是 在这里的除法有些小门道:
Eg:5/2这里输出的是一个整型的2
5.0/2.0输出的才为2.5
整型除于整型默认输出整型 第一种的除法是小学学的那种 5除于2等于2余1
而说起余数,正好有一个算术操作符输出的结果就是余数——%
5%2输出为1
移位操作符——<< >>(这是两个 大/小 于号组成的,并非我们中文上的书名号)
移位操作符是直接在内存对二进制进行操作的
Eg:
short a= 1;
short b=a<<1;
a本来在内存上表现为00000000 00000001
由于所有数据为向左移动一位,所以b在内存上表现为 00000000 00000010
显而易见的, b=2
直接在内存上进行二进制操作的还有位操作符,分别是:
& 按位与
| 按位或
^ 按位异或
接下来是复合赋值符:
Eg: a=a+10 可以“缩写为” a+=10
以这种类型的复合符还有:
-=
*=
/=
&=
|=
>>=
<<=
这些都是对变量(左)进行相应运算操作再赋值给原本的变量
这些操作符还可以用目来分类(一目操作符,双目操作符,三目操作符,多目操作符)
目指的是操作单元。
Eg: a + b——这里的加号操作着a和b进行相加 所以加号是一个双目操作符
单目操作符
常用有: + - & sizeof() ! ~ ++ --
1. + - 放在数字前面,起到表示数字正负的作用。
2.!逻辑反操作: 在C中,规定0为假,非0为真
!19= 0
!0=1(默认)
3.~是对数的补码进行取反
插入对二级制的一些说明
先引进三个名词: 源码 反码 补码
就拿整型来说,在内存里存储的都是补码
一开始我们将一个整型转换为二级制的那串数字就叫源码
源码的首位不变,其他位取反就可以得到反码(首位又叫做符号位,当它为0是表示数字为正,反之则表示数字为负)
反码的末尾加一(意味着有进位的可能),就得到补码
Tip:正数的源码 反码 补码都相同
双目操作符
常见的有: ++ -- (类型)
1.++(--) 他们在前置和后置下有不同的作用
Eg:b=a++ 表示b=a a=a+1
b=++a 表示a=a+1 b=a
(b=a a++ 合起来就是b=a++看起来挺合理的)
2.(类型)括号里放置你要的类型
Eg: int num1 = (int) 3.14; ——本来电脑会将这个数自动保存为浮点型,但是现在固定为了整型
关系操作符也是双目的
>= <= (大于等于号和小于等于号)
!=(判断是否不相等,不相等则输出为真)
== (判断是否相等,相等则输出为真)
> <(略)
双目操作符的还有逻辑操作符
&& 逻辑与
|| 逻辑或
(真假按照0和非0来判断)
Eg:3 && 5 = 1
条件操作符/三目操作符
exp1 ? exp2 : exp3
它可以认为是一种对if语句的省略
并且可以运用在特殊情况下
Eg int max=(a>b ? a : b)
翻译: a是否大于 b 是 则取a 不是则取b
多目操作符(逗号表达式)
表达式1, 表达式2, 表达式3,....
在这里面 逗号表达式视为一个整体
而逗号是执行优先级最低的操作符