第十二章——位运算

按位的与&

若x的第i位和y的第i位都是1,那么(x&y)_{i}=1,否则(x&y)_{i} = 0

应用:希望让某一位或某些位为0 。取一个数中的一段。

按位的或|

若x的第i位==1或y的第i位==1,那么(x | y)_{i}=1,否则(x | y)_{i} = 0

应用:使得某位或某几位为1。把两个数拼起来。

按位取反~

1变0,0变1。%hhx表示输出char

	char c=0xAA;
	printf("~c=%hhx\n", (char)~c);

按位的异或^

如果两位相等,为0;不相等,为1。

<<左移

i<<j表示i中所有的位向左移动j个位置,而右边填入0.

所有<int的类型,移位以int的方式来做,结果是int

>>右移

i>>j表示i中所有的位向右移j位。

所有<int的类型,移位以int的方式来做,结果是int。

对于unsighed的类型,左边你填0;对于signed类型,左边填入原来的最高位(保持符号不变)。

逻辑运算VS按位运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值