JS运算符:^位异或运算符在AE中的应用
今天有同学在群里问:
我的AE表达式为什么换了个电脑出错了?
看了一眼他的表达式,如下图:


这是我第一次见有人在表达式中使用^这个运算符。
一开始以为它表达式写错了,index ^ thisComp.layer("空 1").effect("滑块控制")("滑块");
以为他把 * 写成了 ^,最后仔细一想,js确实有这么个运算符。
“^”运算符
位异或运算符,用于对两个二进制操作数逐位进行比较。

也就是:
当2个数比较为True的时候,结果为0;
当2个数比较为False的时候,结果为1;
下面我们来对两个数字5和2进行^运算。
先将5和2转成二进制的数:


然后对二进制的5和2进行比较:

将二进制数字右对齐,缺少的位数补上0。得到的结果是111,转成十进制就是7。

在AE中验证一下结果是7。

为什么这里用^(位异或)运算符,而不是*(乘法)运算符呢?
*(乘法)运算符,乘法运算符的到的是一组从小到大的数字。

而^(位异或)运算符,得到的是一组看起来无序且又接近的数字。
如果你需要这样一组数字,可以考虑使用^(位异或)运算符。

10进制转2进制转换器
https://www.xiao84.com/tools/103103.html?ivk_sa=1024320u