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

2024-08-15 19:39:51 浏览数 (5)

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

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

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

& 操作符的用法:

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

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

下面我们来分别看下

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

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

代码语言:javascript复制
    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

代码语言:javascript复制
print(1 & 2);    //01  10    0(0)
print(5 & 6);    //101    110    100(4)
print(5 & 5);

大家还有什么问题,欢迎在下方留言!

0 人点赞