C语言中的位运算符

    C语言中的位运算符:

    char a = 1;
    char b = 0;

  1. 按位取反:~   printf("%d\n", ~a);//-2
  2. 按位与:&(逻辑乘法):遇0则0   printf("%d\n", a & b);//0
  3. 按位或:|(逻辑加法):遇1则1   printf("%d\n", a | b);//1
  4. 按位异或:^:相同为0,不同为1;  变来变去,也只有以下四种情况,所以异或两次还是相同的。不同变相同<-->相同变不同,不同变不同<-->不同变不同,相同变相同<-->相同变相同,相同变不同<-->不同变相同。
  5. 左移:<< *2的n次幂   printf("%d\n", a << 2);//4
  6. 右移:>> /2的n次幂   printf("%d\n", a >> 2);//0
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

main(int argc, char *argv[])
{
	char a = 1;
	char b = 0;
	//1.按位取反:~
	printf("%d\n", ~a);//-2
	//2.按位与:&(逻辑乘法):遇0则0
	printf("%d\n", a & b);//0
	//3.按位或:|(逻辑加法):遇1则1
	printf("%d\n", a | b);//1
	//4.按位异或:^:相同为0,不同为1;
	//变来变去,也只有以下四种情况,所以异或两次还是相同的。
	//不同变相同<-->相同变不同,不同变不同<-->不同变不同,相同变相同<-->相同变相同,相同变不同<-->不同变相同。
	//5.左移:<< *2的n次幂
	printf("%d\n", a << 2);//4
	//6.右移:>> /2的n次幂
	printf("%d\n", a >> 2);//0

	system("pause");
	return 0;
}




1                1                0                0
0                1                0                1
—              —              —              —
1                0                0                1
0                1                0                1
—              —              —              —
1                1                0                0

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值