一、移位操作符
<< 左移 >> 右移
举例:
int main()
{
int a = 1;
int b = a << 1;
printf("%d\n", b);
return 0;
}

解释:int a = 1
//整型1占4个字节-------32bit位
00000000000000000000000000000001
a<<1;
a: 00000000000000000000000000000010
这里需要补充个知识:
右移操作符:如果原符号位是正,则在左边补0,如果为负,则补1,如果为无符号,则都补0
左移操作符:不管有无符号,都在右边补0
二、位操作符
1、&---按位与
2、|----按位或
3、^---按位异或-------对应二进制相同,则为0,对应二进制不相同,则为1
举例:
int a = 3; int b = 5; int c = a&b; int d = a|b; int e = a^b;
遇到这些问题,首先要把a和b转化为二进制,才可以进行计算。
3------011
5------101
& 001 输出1
| 111 输出8
^ 110 输出6
三、赋值操作符
注意:一个“=”为赋值,“==”是判断相等,“!=”是不等于

就像上面的图一样。
四、逻辑操作符
真-----非0的数 假------0 &&------逻辑与 ||----逻辑或
int main()
{
int a = 3;
int b = 5;
int c = a && b;
printf("%d\n", c);
return 0;
}
如上面的代码,a是非0的数,代表真,b是非0的数,也代表真,所以&&,这两个都为真,那么c就是输出1.
五、条件操作符
exp?exp2:exp3 如果exp为真,则输出exp2,否则输出exp3
max = (a>b?a:b) 如果a>b,则a的值赋予max,否则b的值赋予max
那么,今天的分享就到这里了,如果大家有任何的不清楚的地方,随时可以私信我,本人一定会及时回复的!!!!!!!!!!!!!!
本文详细介绍了位操作符,包括左移(<<)和右移(>>)操作,并通过实例展示了它们如何影响二进制位。同时,解释了按位与(&)、按位或(|)和按位异或(^)的使用。此外,还提到了赋值操作符(=)和逻辑操作符(&&、||)以及条件操作符(exp?exp2:exp3)。这些基础知识对于理解计算机底层运作和编程至关重要。
66万+

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



