由于不懂pythod,最近拜托朋友研究下解密live2d模型的解密算法,朋友写出了Java的代码

之后我进行改版,在转为kotlin的时候,发现kotlin自动转换有些坑,以及kotlin中的位运算符优先级似乎和Java中不是相同的,特此记录下相关的资料

Java Kotlin 说明
~a a.inv
a&b a.and(b)
a|b a.or(b)
a^b a.xor(b) 异或
a<<b a.shl(b) 左移b位
a>>b a.shr(b) 右移b位
a>>>b a.ushr(b) 无符号右移b位

~另外,对于 <<= 、>>= 、>>>= 这三个操作,Kotlin中没有对应的函数

优先级:

优先级 运算符 结合性
1 ()、[]、. 从左向右
2 !、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 <<、>>、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、%=、|=、^=、~=、<<=、>>=、>>>= 从右向左