目录
一,基本操作符
加 + 、减 - 、乘 * 、除 / 、求余 %
注:
- 除了 % 操作符之外,其他的操作符都可以作用于整数和浮点数;
- 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除 法。
- % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
int main()
{
int a = 1;
int b = 2;
a + b;
a - b;
a * b;
a / b; //结果为0,两整数相除结果仍为整数,只要其中有浮点数即可得出小数
a % b; //左右边操作数需均为整数
return 0;
}
二,移位操作符(二进制位)
右移 >> ,左移 <<
1,>>,右移操作符(除2效果),右移有两种情况:
- 算数右移,右边丢弃,左边补原符号位(可能是0,也可能是1);
- 逻辑右移,右边丢弃,左边补0;
int main()
{
int a = 3;
printf("%d\n", a >> 1);
//0000 0000 0000 0000 0000 0000 0000 0011 - 3的内存二进制形式(正整数原反补相同)
//0000 0000 0000 0000 0000 0000 0000 0001 - 向右移一位,最左边补零
//结果为:1
return 0;
}
2,<<,左移操作符(乘2效果)
- 左边丢弃,右边补0;
//正整数
int main()
{
int a = 3;
printf("%d\n", a << 1);
//0000 0000 0000 0000 0000 0000 0000 0011 - 3的内存二进制形式(正整数原反补相同)
//0000 0000 0000 0000 0000 0000 0000 0110 - 向左移一位,最右边补零
return 0;
}
//结果为:6
//负整数
int main()
{
int a = -3;
printf("%d\n", a << 1);
//1000 0000 0000 0000 0000 0000 0000 0011 - 原码
//1111 1111 1111 1111 1111 1111 1111 1100 - 反码(符号位不变,其余取反)
//1111 1111 1111 1111 1111 1111 1111 1101 - 补码(反码+1),即内存中的二进制形式
//1111 1111 1111 1111 1111 1111 1111 1010 - 向左移一位,最右边补零
//1111 1111 1111 1111 1111 1111 1111 1001 - -1得到补码
//1000 0000 0000 0000 0000 0000 0000 0110 - 符号位不变,其余取反,得到原码
return 0;
}
//结果为:-6
注:
- 不要移负位数;
- 整数的二进制表示由原码、反码、补码;(-1的补码全为1);
三,位操作符(二进制位)
按位与 &,按位或 |,按位异或^
- & 按位与,有0即为0,都为1才为1;
- | 按位或,有1即为1,都为0才为0;
- ^ 按位异或,相同为0,相异为1;
注:操作数必须为整数;
int main()
{
int a = 0; //0000 0000 0000 0000 0000 0000 0000 0000
int b = 1; //1000 0000 0000 0000 0000 0000 0000 0001
printf("%d %d %d\n", a & a, b & b, a & b); //结果:0 1 0
printf("%d %d %d\n", a | a, b |

本文详细介绍了C/C++编程中的基本操作符、移位与位操作、赋值与单目操作,以及关系、逻辑和条件表达式等内容,帮助理解并掌握核心编程概念。
最低0.47元/天 解锁文章
320

被折叠的 条评论
为什么被折叠?



