常见的运算符
表达式
表达式是由常量,变量,运算符组成的式子
运算符
运算符有自己的运算法则,优先级别,结合性
位运算
位运算:2进制补码形式参与运算
原码;最高位表示符号位,其他位表示大小
反码:正数反码与原码相同,负数反码:符号位不变,其他位取反
补码:正数补码与原码相同,负数补码:反码加1
补码的补码就是原码
下面来介绍常用的运算符
算数运算符
都是一些老朋友了
乘法运算符【*】
除法运算符【/】
取余运算符【%】
加法运算符【+】
减法运算符【-】
他们的结合性都是左到右,都属于双目运算符(后面会做说明)
取余运算符的注意事项
1.%的两个操作数必须为整形
2.带负号的模运算
我们可以看出只和被除数的符号有关
取余运算符可以做什么
看到这里大家或许没看出取余运算符可以做什么事情
1.可以取出每一位的数字
然后我们就可以逆序输出5432了
2.计算范围距离
比如我们英雄的伤害是在10到20之间
[10,20]
int Hurt = rand()%(20-10+1)+10;
cout<<“Hurt”<<Hurt<<endl;
rand作用是随机产生一个数字
是怎么来的
首先%一个数会得到从0到这个数字-1
比如
任意一个正数%5
结果只可能是0,1,2,3,4
用上面的例子
[10,20]
1我们至少有10点伤害
2.在10的基础上加上从0到20(max) - 10(min)
也就是
rand()%(20-10+1)+10;
我们可以推出范围距离
rand()%(max - min + 1) + min
自增自减
++,–自己(必须是变量)本身+1或者-1
a++(–)后置;先运算,再自加(减)
++(–)a前置:先自加(减) ,再运算
前置和后置的区别
1.运算法则不一样
2.优先级:后置大于前置
3.效率:前置>后置 (后置会调用2次拷贝构造函数)
int a = 1,b;
b = a++;//后置,先计算b=a,再计算
cout << "a=" << a << ",b=" << b << endl;//2,1
b = ++a;//前置,先自加a=a+1;再计算b=a
cout << "a=" << a << ",b=" << b << endl;//3,3
//运算前, 数前置; 运算后, 数后置(保证它参与运算)
b = a++ + a;//后置>前置
cout << "a=" << a << ",b=" << b << endl;//4,6
b = a++ + (++a) + a++;
cout