C#☀️原来高级程序员是这样使用 & 操作符

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: C#☀️原来高级程序员是这样使用 & 操作符


今天公司派了新任务,给一个SDK写教学文档

在看到一个方法时,当时就震惊了,原来2021还有人在Unity中用二进制来操作。

于是橙子记录一下,毕竟萌新也想偷偷成为大神

& 操作符的用法:

& 操作符是将两个参数进行 按位与 操作。

& 操作符有两种用法,一种是两个数字进行“按位与”操作,另一种是将两个bool变量进行“按位与”操作。

下面我们来分别看下

一、bool变量的"按位与&"操作

下面,我们将两个bool方法进行 & 操作,并得出结果。

    private void Start()
    {
        print("&符号的执行结果");
        var value = OneMethod() & TwoMethod();
        Debug.Log("输入这两个方法的结果:" + value);
        print("******************************************");
 
        print("&&符号的执行结果");
        value = OneMethod() && TwoMethod();
        print("输入这两个方法的结果:" + value);
    }
 
    //&与&&的测试
    private bool OneMethod()
    {
        print("这是第一个方法");
        return false;
    }
 
    private bool TwoMethod()
    {
        print("这是第二个方法");
        return false;
    }

我们发现,& 与 && 的不同是:

&:按位与,对两个条件都进行判断,两个条件都执行。

&&:逻辑与,会按顺序进行判断。若第一条为false,则后面都不再判断,直接返回false。

若第一条为true,第二条为false,则第二条之后都不再判断,返回false。

相同是:都是比较两个bool值,若都为true,则返回true,否则false。

二、int值的"按位与&"操作

& 除了可以对两个bool值进行运算,还能对两个int值进行运算。

它的逻辑是将值转换为二进制,按位与。unity得出的值是按位与后的二进制值,再转化为十进制之后的值。

进制换算网站:传送门

比如:

5的2进制值为101,6的2进制为110。

101,与110进行按位与操作后,得出的二进制值为100。十进制即为4

print(1 & 2);    //01  10    0(0)
print(5 & 6);    //101    110    100(4)
print(5 & 5);

相关文章
|
5月前
|
程序员 C# C++
lpszBlogName C#开发多年中途被迫改行C++但工作中又经常偷偷使用C#的C++程序员
通过AUMID解析出packageFamily,再根据PackageManager解析出安装目录 PackageManager是WinRT的类型,如何在c++中使用WinRT,请参考C++/WinRT 以下代码需要管理员权限才能运行。
|
6月前
|
开发框架 .NET Linux
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
|
前端开发 JavaScript 程序员
【程序员的福音】一款C#开源的GitHub加速神器
【程序员的福音】一款C#开源的GitHub加速神器
187 0
|
Java 程序员 PHP
C#-程序员不积跬步无以至千里 076
<p>  首先感谢关注支持我的老铁,感谢你们的点赞鼓励,使我有动力继续写下去,多余的话也不多说了,只能是尽最大力气把001承诺的知识一一认真地写出来,供大家免费学习;在评论区也不用拿说什么大佬的来噎我,在IT界没几个敢说自己是大佬的,且不说编程语言几百种(通过百度百科查询到了600多种编程语言,其中一一比较广泛的通用开发语言有 C, C++,JAVA,C#,VB,Python, PHP, 等)一些大牛也只是在某一方面研究比较深,比别人厉害一些,大而全不如小而精;提一些把我难住的问题给我难堪,没必要这么无聊消遣我,我写这个本身就是一个兴趣,又不靠这个生活,文章内容也会尽量专业化,更新可能会慢些望
127 0
|
SQL 程序员 C#
一起谈.NET技术,看似简单!解读C#程序员最易犯的7大错误
  编程时犯错是必然的,即使是一个很小的错误也可能会导致昂贵的代价,聪明的人善于从错误中汲取教训,尽量不再重复犯错,在这篇文章中,我将重点介绍C#开发人员最容易犯的7个错误。   格式化字符串   在C#编程中,字符串类型是最容易处理出错的地方,其代价往往也很昂贵,在.
1073 0
|
程序员 C# 图形学
Unity C#基础之 反射反射,程序员的快乐
反射反射,程序员的快乐 这句话想必大家都经常听过,基本上在绝大多数的框架和一些设计模式中都能看到反射的身影(MVC、IOC、AOP、O/RM), 反射:是.Net Framework提供的一个帮助类库,可以访问dll的metadata,并且使用它。
1166 0