Kotlin学习快速入门(12)—— 位运算符
由于不懂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 | =、+=、-=、*=、/=、%=、|=、^=、~=、<<=、>>=、>>>= | 从右向左 |


浙公网安备 33010602011771号