C/C++之位操作运算与进制


一、位操作运算

1.&与操作

&1不变,&0归零

  • &1不变:1&1=1,0&1=0
  • &0归零:1&0=0,0&0=0

2.|或操作

|1归1,|0不变

  • |1归1:1|1=1,0|1=1
  • |0不变:1|0=1,0|0=0

3.<<左移

#include <stdio.h>
int main()
{
	printf("%d\n", 0x1);
	//1
	/*(0x1)H = (0001)B=(1)D*/

	printf("%d\n", 0x1<<2);
	//4
	/*(0001)B<<2 = (0100)B = (4)D*/

	printf("%d\n", ((0xf << 0) | (0xf << 4) | (0xf << 8) | (0xf << 12)) );
	//65535
	/*
	(1111)B | (1111)B<<4 | (1111)B<<8 | (1111)B<<12
	= (1111 | 1111,0000 | 1111,0000,0000 | 1111,0000,0000,0000)B
	= (1111,1111,1111,1111)B
	= (65535)D
	*/

	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值