今天我们主要讲一下操作符(因为是初识,我们今天只浅浅的讲一下它的基本用法)
- 操作符的类型
1、算术操作符
+ - * / %
注意:/的意思为整除(5/2==4)
%的意思为取模即求余(5/2==1)
2、移位操作符
>> <<
那么这个奇怪的符号是什么意思呢?
运行结果为2
0 | 0 | 0 | 0 | 0 | 1 |
这便是初始a=1,a<<1即a向左移动一个二进制位,故变为2(右移意思相同)
3、位操作符
& (按位与)
^ (按位异或)
| (按位或)
我们通过几个程序来说明
3和5在二进制中的表示,以及a&b之后的结果
0 | 1 | 1 |
1 | 0 | 1 |
0 | 0 | 1 |
若在二进制中0表示假,1表示真。从上往下(0和1为0,0和0也为0,1和1才为1)
|(按位或)操作符
【1】【0】【1】
【1】【1】【0】
【1】【1】【1】 ( 经过|之后)变为7,也即只要1存在即变为1(通俗来说)
^(按位异或)
【1】【0】【1】
【1】【1】【0】
【0】【1】【1】
输出结果为3,也即是1和0同时存在是为1,只有0或者只有1即为0
4、赋值操作符
= += -= /= &= ^= |= >>= <<=
一个算数操作符和一个=是什么意思嘞
其它符号的意思与其类似,可类比思考。
5、单目操作符
! 逻辑反操作
& 取地址
sizeof 操作数的类型长度
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
- 负值
+ 正值
为什么叫做单目操作符?
因为这些操作符可以与一个字符联用。
由于我们是初识c语言所以我们只先挑几个重要的进行讲解。
首先!
前面我们提到过在c语言中0为假,非0为真。
”!“这个符号的意思为 非真为假,非假为真。
再说一下sizeof(测定操作数的类型长度)
一个整型数字(整型)的所占的字节数为4
sizeof使用时的注意
接下来到~(按位取反)了,神马意思呢?
让我们先说一下数字在计算机中是如何存出的呢?
数字在计算机中都是以补码的形式储存的那么补码是如何形成的呢?
我们以数字二为例
原码:00000000000000000000000000000010
反码:11111111111111111111111111111101
补码:11111111111111111111111111111110
反码就是原码中的1变0,0变1,补码就是反码加1(符号位是一直不变的)
若数字是一个有符号的数如-1,则第一位为符号位(用红色标注),0代表正;1代表负
原码:1000000000000000000000000000001
反码:1111111111111111111111111111110
补码:1111111111111111111111111111111
计算为-2^32+2^32-1=-1
按位取反后也即是一个数字的补码按位取反(符号位也取,)得到的新的代码即是输出的东西。
再接下来就是++,--我们只取其中一个举例
前置++即先加1后使用,后置++即现使用后加加(--相同)
*我们暂时先不讲,正值,负值更不用多说。
6、逻辑操作符
&& 逻辑与(两个条件都满足)
|| 逻辑或(两个条件满足其中一个即可)
我们通过程序来说明
输出结果为0,这个是&&的例子下面来看一下||的例子
输出结果为1只要有一个为真即为真。
7、条件操作符
exp1?exp2: exp3(如果满足exp1则输出exp2否则输出exp3
8、下标引用,函数调用操作符
我们用代码的一部分来说明