C# 位运算详解

运算符描述
&(位与)当两个二进制操作位都为1时,结果就为1
|(位或)当两个二进制操作位有1个为1时,结果就为1
^(位异或)当两个二进制操作位只有1个为1时,结果为1
~(位非)操作位的每个位都取反(就是0变成1,1变成0)
<<(左移)二进制左移运算符。左操作数的值向左移动右操作数指定的位数。
>>(右移)二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

pq实例图

pqp & qp | qp ^ q
00000
01011
11110
10011

如下 :

int x=12,y=10;

int a;

a=x&y; //a=8

下面是计算试子的和加减法一样

二进制的个位,十位,百位,千位,分别对应的是1,2,4,8 二进制每多一位只需要乘2 那个个位置有1 就加上该位置的十进制数 。

上面说&运算时,当两个二进制操作位都为1时,结果就为1

看个位 0&0 =0  十位 0&1=0   百位 1&0=0 千位1&1=1 

换下来就是 1000(二进制) =8(十进制) 12&10=8

12|10,12^10 可以试着就算这个值

位非怎么运算呢?

~12  直接位数取反 0变1,1变0 二进制左端1是位负数  在取反上-1

~12=-13; 

要获取他12的相反数 二进制表示 也是 取反 但是在结果上加1

 

左/右移  左移对移玩的位置补0 14<<3  二进制就是 1110>>1110 000 

就是 14X2X2X2=112  14<<3=112

右移 切记负数右移是错误的 因为一个负数无论如何除2都不会乘位一个正数  14>>3=1

 

转载于:https://www.cnblogs.com/feizianquan/p/10071103.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值