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

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

在编写函数,获取一个数的二进制表示中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。

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

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

目录
打赏
0
0
0
0
3
分享
相关文章
5.QT中关于HTTPClient相关的操作,Json数据传输
 新建项目T12HttpClient T12HttpClient.pro SOURCES += \     main.cpp   QT += network CONFIG += C++11 main.cpp #in
2039 0
kde
|
3天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
1596 5
2025年最新版最细致Maven安装与配置指南(任何版本都可以依据本文章配置)
本文详细介绍了Maven的项目管理工具特性、安装步骤和配置方法。主要内容包括: Maven概述:解释Maven作为基于POM的构建工具,具备依赖管理、构建生命周期和仓库管理等功能。 安装步骤: 从官网下载最新版本 解压到指定目录 创建本地仓库文件夹 关键配置: 修改settings.xml文件 配置阿里云和清华大学镜像仓库以加速依赖下载 设置本地仓库路径 附加说明:包含详细的配置示例和截图指导,适用于各种操作系统环境。 本文提供了完整的Maven安装和配置
2025年最新版最细致Maven安装与配置指南(任何版本都可以依据本文章配置)
Dify MCP 保姆级教程来了!
大语言模型,例如 DeepSeek,如果不能联网、不能操作外部工具,只能是聊天机器人。除了聊天没什么可做的。
456 4
Excel数据治理新思路:引入智能体实现自动纠错【Python+Agent】
本文介绍如何利用智能体与Python代码批量处理Excel中的脏数据,解决人工录入导致的格式混乱、逻辑错误等问题。通过构建具备数据校验、异常标记及自动修正功能的系统,将数小时的人工核查任务缩短至分钟级,大幅提升数据一致性和办公效率。
Go语言实战指南 —— Go中的反射机制:reflect 包使用
Go语言中的反射机制通过`reflect`包实现,允许程序在运行时动态检查变量类型、获取或设置值、调用方法等。它适用于初中级开发者深入理解Go的动态能力,帮助构建通用工具、中间件和ORM系统等。
143 63
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问