【位运算】

本文讲解了位运算的基本概念,包括左移(<<), 右移(>>), 按位与(&), 按位或(|), 按位异或(^)和取反(~),并通过代码示例展示了它们的实战用法。还介绍了如何利用位运算进行奇偶性判断,并探讨了这些操作在编程中的实际用途和效率优化。
摘要由CSDN通过智能技术生成

位运算

左移:<< 一个数左移几答案等于该数连续乘以几个2 eg:10<<2 就等于40

右移:>>一个数左移几答案等于该数连续除以几个2 eg:10>>1 就等于5

按位与:& 二进制位上相同位数字,同时为1,结果为1,一方为0,结果为0

可用作奇偶判断的优化

按位或:| 二进制位上相同位数字,有一方为1,结果为1,反之为0

按位异或:^ 二进制位上相同位数字,相同为0,不同为1

取反:~ 不用关心符号位,全部按位取反 1变0 ,0变1

 

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{//左移 右移
	printf("%d\n", 10 << 2);//40
	printf("%d\n",10>>1);//5
	//按位与 样例:
	printf("%d\n",10&5);//0
	//按位或
	printf("%d\n",10|5);//15
	//按位异或
	printf("%d\n",11^5);//14
	//取反
	printf("%d\n",~10);//-11
	//判断一个数的奇偶性:
	int num;
	scanf("%d",&num);
	if ((num & 1) == 0)//小括号是提升优先级的
		printf("%d是偶数", num);
	else
		printf("%d是奇数", num);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值