• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#'~'按位取反运算符的使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255。

该功能可以在mask中做一些反转操作

 

如下代码,a存放了2,4,8三个值。用按位取反'~'运算符反转

打印结果是 false,flase,false,true,true。Mask已经被反转

class Program
{
    static void Main(string[] args)
    {
        byte a = 2 | 4 | 8;
        byte b = (byte)~a;

        Console.WriteLine((b & 2) == 2);
        Console.WriteLine((b & 4) == 4);
        Console.WriteLine((b & 8) == 8);

        Console.WriteLine((b & 16) == 16);
        Console.WriteLine((b & 32) == 32);

        Console.Read();
    }
}

 

比如在unity引擎中,该操作可以被使用在LayerMask上:

public class LayerMaskTest : MonoBehaviour
{
    public LayerMask layerMask;
    

    void OnEnable()
    {
        layerMask.value = ~layerMask.value;
    }
}

 

 

我们也可以结合一些位运算操作符,去除一些位标记。

例如该操作在mMask这个int变量上,去除第7个二进制位上的1:

int layer = 1 << 7;
mMask = mMask & (~ layer);

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#泛型与其他语言的对比(深入理解c#)发布时间:2022-07-18
下一篇:
C#中Object和Json之间的转换发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap