You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中使用Java的按位与、按位或运算符?

在Kotlin中使用位运算的正确姿势

嘿,你提到的问题其实是Kotlin和Java在语法设计上的小差异——Kotlin并没有移除位运算功能,只是把Java里的符号式位运算符换成了中缀函数的形式来调用,下面给你详细说明:

运算符对应关系表

Kotlin为Int、Long等数值类型内置了专用的位运算中缀函数,和Java的运算符完全对应:

  • Java的|(按位或)→ Kotlin的or
  • Java的&(按位与)→ Kotlin的and
  • Java的^(按位异或)→ Kotlin的xor
  • Java的>>(有符号右移)→ Kotlin的shr
  • Java的<<(左移)→ Kotlin的shl
  • Java的>>>(无符号右移)→ Kotlin的ushr

示例代码转换

你给出的Java代码:

int a = 5 | 10;
int b = 5 & 10;

转换成Kotlin的写法就是:

val a = 5 or 10  // 等价于Java的5 | 10,计算结果为15
val b = 5 and 10 // 等价于Java的5 & 10,计算结果为0

为什么这么设计?

Kotlin这么做是为了避免符号运算符的歧义——比如&在Java里同时承担按位与和逻辑与(非短路)的职责,而Kotlin把逻辑与明确为&&,按位与用and中缀函数,语法上更清晰,也减少了出错的可能。

如果你实在习惯符号写法,也可以自己给数值类型扩展运算符,但官方推荐的标准写法还是使用内置的中缀函数,可读性和兼容性更好。

内容的提问来源于stack exchange,提问作者Water Magical

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:33:23