操作符
文章目录
0.源码、补码、反码、移码
正整数:原码、反码、补码相同
负整数:原码、反码、补码不同,要计算
整数在内存中存储的是补码
移码一般用在浮点数取数大小上,不太重要
1.算数操作符
算术操作符:+ - * / %
易错重点:
①:
除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数
②:
对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法
③:
% 操作符的两个操作数必须为整数。返回的是整除之后的余数
举例:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a = 10, b = 20, c = 15; printf("a=%d b=%d c=%d\n", a, b, c); printf("a+b=%d\n", a + b); printf("a-b=%d\n", a - b); printf("a*b=%d\n", a * b); printf("a/b=%d\n", a / b); printf("b/c=%d\n", b / c); printf("b模c=%d\n", b%c); return 0; }
2.移位操作符
移位操作符分为:左移操作符、右移操作符—
移位操作符没有负数
左移操作符 移位规则:左边抛弃、右边补0
右移操作符 移位规则:分为两种(逻辑移位、算术移位)
—默认算术右移
二进制、八进制、十六进制可以用移位运算符快速计算
3.位操作符
0为假,1为真
& —按位(二进制)与 —
同真为真
| —按位(二进制)或 —
同假为假
^ —按位(二进制)异或 —
相同为假,相异为真
他们的操作数必须是整数
规则:本身异或两次,值不变
—第一次异或,二进制全为0,第二次异或,二进制为本身—同为0,异为1//实际用法:不创建临时变量,实现两数的交换---规则:同一个数相互异或两次,值不变 #include <stdio.h> int main() { int a = 10; int b = 20; printf("a=%d b=%d\n",a,b); a = a^b; b = a^b;//本质:b=a^b^b---b=a^0---b=a a = a^b;//本质:a=a^b^a---a=b printf("a = %d b = %d\n", a, b); return 0; }