位与运算&小于相等判断==的优先级

简介: 位与运算&小于相等判断==的优先级

在编写函数,获取一个数的二进制表示中1的数量时,如果采用左移后与最高位为1的数,进行位与运算。那么运算符的优先级需要特别注意。

完整函数如下,其中0x80000000表示32位整数中最高位为1的数,二进制表示为1000 0000 0000 0000 0000 0000 0000 0000

int getNumOf1InBin1(int n)
{
    int cnt = 0;
    while (n != 0){
        if ((n & 0x80000000) == 0x80000000) //与运算需要加括号
            cnt++;
        n <<= 1;
    }
    return cnt;
}

如果写成

if (n & 0x80000000 == 0x80000000)

则先判断 两个负数是否相等,当然是相等的,结果为1,n再与1进行与运算。显然,这里的逻辑不是我们想要的。因此,需要加括号,先做与运算,将非最高位置为0,再判断最高位是否为1。

当然该功能还有更好的办法,暂且不表。

优先级有疑问可参考下表。

相关文章
xltd文件怎么打开?教你xltd格式文件打开方法
xltd文件怎么打开?教你xltd格式文件打开方法
2468 0
|
Java 测试技术 容器
SpringBoot单元测试报空指针异常解决方案
java.lang.NullPointerException空指针异常 1.测试类中产生空指针异常,可能不是你的逻辑代码写错了,而是因为获取容器失败,即没有使用正确的测试方法 2.在SpringBoot项目中我们一般可以使用两种Junit进行测试,在导入@Test包时,会出现两个选项
1688 0
SpringBoot单元测试报空指针异常解决方案
|
21天前
|
Linux 虚拟化 iOS开发
VMware Workstation & Fusion 25H2:采用日历版本命名与全新功能
VMware Workstation & Fusion 25H2:采用日历版本命名与全新功能
458 5
VMware Workstation & Fusion 25H2:采用日历版本命名与全新功能
|
弹性计算
关于ECS服务器搭建代理
基于CentOSx系统,使用ECS服务器搭建代理
1811 1
关于ECS服务器搭建代理
|
9月前
|
人工智能 API 开发者
通过宏实现Word接入DeepSeek
本文介绍如何在Microsoft Word中通过宏接入DeepSeek,实现自动化文本处理。首先确保具备Word 2016及以上版本、DeepSeek API密钥和VBA基础。接着,从豆包平台获取API密钥及模型ID,并在Word中启用开发者选项和宏功能。最后,编写VBA宏代码调用DeepSeek API,完成文本分析与处理。
604 0
|
12月前
|
机器学习/深度学习 人工智能 运维
智能运维在现代IT系统中的应用与挑战####
本文深入探讨了智能运维(AIOps)在现代IT系统中的关键作用,通过具体案例分析,揭示了其在提升系统稳定性、优化资源配置及自动化故障处理方面的显著优势。同时,文章也指出了实施智能运维过程中面临的数据安全、技术整合及人员技能转型等挑战,并提出了相应的解决策略,为读者提供了全面而深刻的见解。 ####
297 6
|
存储 固态存储 算法
硬盘碎片整理的作用
硬盘碎片整理的作用
1055 5
|
机器学习/深度学习 监控 算法框架/工具
用Python实现简单的图像分类器
用Python实现简单的图像分类器
310 0
|
消息中间件 存储 安全
01为什么需要MQ及其好处
01为什么需要MQ及其好处
200 0
|
机器学习/深度学习 自然语言处理 算法
利用深度学习优化图像识别精度的策略
【5月更文挑战第15天】 在计算机视觉领域,图像识别的精确度直接关系到后续处理的效果与可靠性。本文旨在探讨如何通过深度学习技术提升图像识别任务的精度。首先,文中介绍了卷积神经网络(CNN)的基础结构及其在图像识别中的应用;然后,详细分析了数据增强、网络结构优化、正则化方法和注意力机制等策略对提高模型性能的作用;最后,通过实验验证了所提策略的有效性,并讨论了未来可能的研究方向。本文不仅为图像识别领域的研究者提供了实用的优化策略,也为相关应用的开发者指明了提升系统性能的可能途径。