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

如何在Kotlin中获取Int的二进制表示?是否有整数位表示方法?

在Kotlin中获取Int的二进制表示

嘿,这个问题很实用!在Kotlin里获取Int类型的二进制表示,有几种简单且官方的方法,完全能满足你的需求,我来详细说说:

1. 使用toString(radix: Int)方法(最推荐)

这是Kotlin为所有数字类型提供的原生方法,只需要把基数(radix)设为2,就能直接得到对应的二进制字符串,完美匹配你给出的例子:

fun main() {
    val num0 = 0
    println(num0.toString(2)) // 输出: 0

    val num4 = 4
    println(num4.toString(2)) // 输出: 100

    val num22 = 22
    println(num22.toString(2)) // 输出: 10110
}

这里补充个小细节:如果处理负数,toString(2)会返回带负号的二进制字符串(比如-4.toString(2)输出-100)。如果你需要32位的补码形式,可以借助Java的Integer.toBinaryString()方法(因为Kotlin的Int和Java int是兼容的),比如Integer.toBinaryString(-4)会返回11111111111111111111111111111100。

2. 自定义实现(进阶玩法)

如果想手动实现二进制转换逻辑(比如学习位操作原理),可以写个简单的函数,核心思路是通过循环对数字取余、整除,再拼接结果:

fun intToBinary(num: Int): String {
    if (num == 0) return "0"
    var n = num
    val sb = StringBuilder()
    while (n > 0) {
        sb.append(n % 2)
        n /= 2
    }
    return sb.reverse().toString()
}

// 调用示例
println(intToBinary(22)) // 输出: 10110

关于整数位表示的其他方法

除了获取二进制字符串,Kotlin还提供了不少位操作相关的函数,帮你更精细地操作整数的位表示:

  • bitCount():返回数字二进制中1的个数(比如22.bitCount()返回3,因为10110里有3个1)
  • shl(n):左移n位,相当于乘以2^n
  • shr(n):右移n位,相当于除以2^n(正数场景)
  • and(mask):按位与操作,用于提取特定位置的位

内容的提问来源于stack exchange,提问作者Rashi Karanpuria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:01:19