在看到一个方法时,当时就震惊了,原来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);
大家还有什么问题,欢迎在下方留言!