今天小玄为大家带来C语言的操作符相关的讲解,希望大家能通过这篇文章对相关操作符有更加深入的理解。那么:
目录
算数操作符
移位操作符
1·<< 左移操作符
* * 左移操作前 * *
* * 左移操作后 * *
* * 总结 * *
2. >> 右移操作符
位操作符
* * & (按位与)* *
* * | (按位或)* *
* * ^ (异或)* *
实践运用
赋值操作符
* * 举例 * *
复合赋值符
单目操作符
* * 类型 * *
* *sizeof * * (操作符)(不是函数!)
* * ~ (对一个数的二进制按位取反) * *
例题实战
关系操作符
* * 类型 * *
逻辑操作符
* * 类型 * *
“区分逻辑与和按位与” “ 区分逻辑或和按位或 ”
一道笔试题
条件操作符
exp1 ? exp2 : exp3
逗号表达式
操作符的属性
算数操作符
+ - * / %
相关细节:
- 除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
- 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
- %操作符的两个操作数必须为整数。返回的是整除之后的余数。
移位操作符
<< 左移操作符
>> 右移操作符
1·<< 左移操作符
* * 左移操作前 * *
移位操作符,移动的是二进制位(适用于整数哦)
对于整数的二进制有3种表示形式 :原码,反码,补码
- 正整数 —— 原码,反码,补码相同
- 负数 —— 看实际情况
原码 —— 直接按照数字的正负写出的二进制序列
反码 —— 原码的符号位不变,其他位按位取反得到的
补码 —— 反码+1
整数在内存中存储的是二进制的补码
* * 左移操作后 * *
* * 总结 * *
左移操作符 移位规则:左边抛弃、右边补0
2. >> 右移操作符
右移操作分两种:
- 算术右移
- 逻辑右移
大部分的编译器使用的是算术右移
警告⚠ : 对于移位运算符,不要移动负数位,这个是标准未定义的。 int num = 10;
int num = 10; num >> 1; //错误的操作
位操作符
* * & (按位与)* *
按二进制位(即用该数的补码进行计算)
* * | (按位或)* *
* * ^ (异或)* *
规则 : 相同为 0;相异为1