运算符 | 术语 | 实列 | 结果 |
+ | 加 | 3+5 | 8 |
- | 减 | 7-4 | 3 |
* | 乘 | 3*5 | 15 |
/ | 除 | 7/3 | 2 |
% | 取模 | 7%3 | 1 |
++ | 自增 | a=2;a++; | 3 |
-- | 自减 | a=2;a--; | 1 |
>> | 右移 | a=2;a=a>>1 | 1 |
<< | 左移 | a=2;a=a<<1 | 4 |
关于除
#include<iostream>
#include<string>
using namespace std;
int main() {
int a = 5, b = 2;
cout << "a/b=" << a / b << endl;
double c = 5, d = 2;
cout << "c/d=" << c / d << endl;
}
若两数为整型,则两数的商也为整型。除此之外除运算的除数是不可以为0的
取模
取模运算的原理是计算余数
#include<iostream>
#include<string>
using namespace std;
int main() {
int a = 5, b = 2;
cout << "a%b=" << a % b << endl;
}
自增自减
这个运算是会区分前置和后置,若为前置,则为先运算后用,若为后置,则为先使用再运算
#include<iostream>
#include<string>
using namespace std;
int main() {
int a = 2;
int b = a++;
cout << "a=" << a << " " << "b=" << b << endl;
int c = 2;
int d = ++c;
cout << "c=" << c << " " << "d=" << d << endl;
}
左移与右移
假设a=1,则a的二进制表示为0001,则a<<1,即意味着在二进制的右边补1个0且丢弃最高位的1个二进制位,则此时a=0010,即a=2,若为a<<2,则a=0100,即a=4
右移分为逻辑右移和算术右移,逻辑右移则为在二进制数的左边补0,丢弃低位的二进制位,算术右移则是在左边补该数的符号位,假设a=-6即a=1010,若为算术右移a>>2,则a=1110即a=-2;假设a=6即a=0011若a>>1,则a=0001则此时a=1