C#位运算(二)

本文深入探讨了C#中的位运算,包括and、or和xor运算,并通过实例展示了它们在判断奇偶性、无条件赋值和简单加密等方面的应用。位运算能有效优化程序,提高效率。
摘要由CSDN通过智能技术生成

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如:and运算本来是一个逻辑运算符,但是整数和整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False ,1表示true ,空位都当0处理)。

110

and 1011

----------------

0010--》2

有人会说,计算6 and 11 没有什么实际意义。位运算到底可以干嘛,有些什么经典应用,以及如何用位运算优化你的程序。

1.and运算&

and 运算通常用于二进制的取位操作,例如一个数and 1的结果就是取二进制的最末位。这个可以用来判断一个整数的奇偶,二进制的最末位为0则表示该数为偶数,最末位为1表示该数为奇数。

相同位的两个数都为1,则为1,如果一个不为1,则为0.

00101

11100

(& ;或者and)

-------------

00100

2、or运算

or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1,。如果需要把二进制最末位变成0,则对这个数 or 1止呕再减一就可以了。其实际意义就是把这个数强行变成最接近的偶数。

相同位只要有一个为1即为1

00101

11100

(| 或者or)

-------------------

11101

3、xor 运算^

异或的符号是^。按位异或运算,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值