JS運(yùn)算符:^位異或運(yùn)算符在AE中的應(yīng)用
今天有同學(xué)在群里問:
我的AE表達(dá)式為什么換了個電腦出錯了?
看了一眼他的表達(dá)式,如下圖:


這是我第一次見有人在表達(dá)式中使用^這個運(yùn)算符。
一開始以為它表達(dá)式寫錯了,index ^ thisComp.layer("空 1").effect("滑塊控制")("滑塊");
以為他把 * 寫成了 ^,最后仔細(xì)一想,js確實有這么個運(yùn)算符。
“^”運(yùn)算符
位異或運(yùn)算符,用于對兩個二進(jìn)制操作數(shù)逐位進(jìn)行比較。

也就是:
當(dāng)2個數(shù)比較為True的時候,結(jié)果為0;
當(dāng)2個數(shù)比較為False的時候,結(jié)果為1;
下面我們來對兩個數(shù)字5和2進(jìn)行^運(yùn)算。
先將5和2轉(zhuǎn)成二進(jìn)制的數(shù):


然后對二進(jìn)制的5和2進(jìn)行比較:

將二進(jìn)制數(shù)字右對齊,缺少的位數(shù)補(bǔ)上0。得到的結(jié)果是111,轉(zhuǎn)成十進(jìn)制就是7。

在AE中驗證一下結(jié)果是7。

為什么這里用^(位異或)運(yùn)算符,而不是*(乘法)運(yùn)算符呢?
*(乘法)運(yùn)算符,乘法運(yùn)算符的到的是一組從小到大的數(shù)字。

而^(位異或)運(yùn)算符,得到的是一組看起來無序且又接近的數(shù)字。
如果你需要這樣一組數(shù)字,可以考慮使用^(位異或)運(yùn)算符。

10進(jìn)制轉(zhuǎn)2進(jìn)制轉(zhuǎn)換器
https://www.xiao84.com/tools/103103.html?ivk_sa=1024320u
標(biāo)簽: