由于不懂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 | =、+=、-=、=、/=、%=、|=、^=、~=、<<=、>>=、>>>= | 从右向左|
评论区