今天公司派了新任务,给一个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);