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

Java中boolean与int类型互转方法及C++同类算法改写方案

Java int与boolean转换及对应算法实现

1. int与boolean的转换规则

Java属于强类型编程语言,boolean和int是完全独立的两种基本数据类型,不支持两者的隐式自动转换,也不允许强制类型转换。
如果需要手动实现两种类型的转换,可以按以下规则编写:

  • int转boolean:遵循C++中非0为true、0为false的逻辑,写法为 boolean boolValue = intValue != 0;
  • boolean转int:遵循true对应1、false对应0的逻辑,写法为 int intValue = boolValue ? 1 : 0;

2. 唯一置位位位置问题的Java实现

你提供的C++代码逻辑为:先校验输入N是否为0,或者存在多个二进制置位位,满足任意一种情况直接返回-1;否则计算唯一置位位的位置返回。
对应逻辑的Java实现如下,注意条件判断需要显式返回boolean结果,不能直接把整数作为判断条件:

class Solution {
    public int findPosition(int N) {
        if ((N & (N - 1)) != 0 || N == 0) {
            return -1;
        }
        return (int) (Math.log(N) / Math.log(2)) + 1;
    }
}

如果想要避免浮点数运算可能带来的精度误差,也可以使用Java内置的位工具方法实现更高性能的版本:

class Solution {
    public int findPosition(int N) {
        if (N == 0 || Integer.bitCount(N) != 1) {
            return -1;
        }
        return Integer.numberOfTrailingZeros(N) + 1;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:36:03