位运算符
博客专区 > 304158 的博客 > 博客详情
位运算符
304158 发表于3个月前
位运算符
  • 发表于 3个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

1.与&运算符

int 3 内存为 0000 0011

int 4 内存为 0000 0100

运算 int 3 & int 4 = 0 内存为 0000 0000 

&运算符 如果对应的上下bit位都为1&计算后才为1,如果对应bit上下有一个为0,那么上下bit&后为0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 3;  //0000 0011
	int b = 4;  //0000 0100
	int c = a&b;//0000 0000
	printf("%d",c);

	getchar();
}

2.或|运算符

int 4 内存为 0000 0100

int 6 内存为 0000 0110

运算 int 4 | int 6= 6 内存为 0000 0110

|运算符,上下bit对应位,只要一个为1那么就是1,上下bit都为0时才是0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 4;  //0000 0100
	int b = 6;  //0000 0110
	int c = a|b;//0000 0110
	printf("%d",c);

	getchar();
}

3.^异或运算符

int 5 内存为 0000 0101

int 6 内存为 0000 0110

运算 int 5 ^ int 6= 3 内存为 0000 0011

^运算符,上下对应bit位必须是0和1的组合才能为1,如果上下对应bit位是相同的值那么为0。

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 5;  //0000 0101
	int b = 6;  //0000 0110
	int c = a^b;//0000 0011
	printf("%d",c);

	getchar();
}

4.<<左移运算符

int 2 内存为 0000 0010

int 1 内存为 0000 0001

运算 int 2 << int 1 = 4 内存为 0000 0100

<<左移运算符,就是把 int 2的内存位往前移动一个int 1就是 4 内存为 0000 0100 就是前进一位,然后补0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 2;     //0000 0010
	int b = 1;     //0000 0001
	int c = a << b;//0000 0100

	printf("%d",c);

	getchar();
}

5.>>右移运算符

例如

int 8 内存为 0000 1000

int 2 内存为 0000 0010

运算 int 8 >> int 2 =2  0000 0010

>>右移运算符,是把int 8 的内存位往右移动 2 位其余补0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 8;     //0000 1000 
	int b = 2;     //0000 0010
	int c = a >> b;//0000 0010

	printf("%d",c);

	getchar();
}

 

共有 人打赏支持
粉丝 0
博文 15
码字总数 6630
×
304158
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: