位运算符、标记位传参

devtools/2024/12/25 20:14:50/

位运算符:

位运算符作用于操作数的位(bit)。

按位与(&)对应位都为1时结果为1

int a = 5; // 0101
int b = 3; // 0011
int result = a & b; // 0001

按位或(|)对应位至少有一个为1时结果为1,否则为0

int a = 5; // 0101
int b = 3; // 0011
int result = a | b; // 0111

按位异或(^)对应位不同为1相同为0

int a = 5; // 0101
int b = 3; // 0011
int result = a ^ b; // 0110

按位非(~)将所有位取反
 

int a = 5; // 0101
int result = ~a; // 1010(注意:结果取决于整数的位数)

左移(<<)向左移动指定的位数,空缺补0

int a = 5; // 0101
int result = a << 1; // 1010

右移(>>)向右移动指定的位数,空缺补0

int a = 5; // 0101
int result = a >> 1; // 0010

标记位传参:

标记位传参是指通过位运算的方式传递参数。

// 使用 #define 定义位标志
#define ENABLE_LOGGING (1 << 0)
#define AUTO_SAVE (1 << 1)
#define FULLSCREEN (1 << 2)// 配置函数,接受一个整数参数
void configureApp(int flags) {if (flags & ENABLE_LOGGING) {// 启用日志记录}if (flags & AUTO_SAVE) {// 启用自动保存}if (flags & FULLSCREEN) {// 启用全屏模式}
}


http://www.ppmy.cn/devtools/145354.html

相关文章

keepalived踩坑记录

环境 操作系统: CentOS7.9 keepalived: 1.35 master配置 cat > /etc/keepalived/keepalived.conf<<EOF global_defs {router_id Nginx1 } vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 3weight -3 } vrrp_instance VI_1 {st…

电子电器架构 ---证书认证需求及CANoe验证脚本

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

[react] <NavLink>自带激活属性

NavLink v6.28.0 | React Router 点谁谁就带上类名 当然类名也是可以自定义 <NavLinkto{item.link}className{({ isActive }) > (isActive ? 测试 : )}>{item.title}</NavLink> 有什么用?他会监听你的路由,刷新的话也会带上激活效果

【微信小程序】页面跳转基础 | 我的咖啡店-综合实训

页面跳转基础 引言 在微信小程序开发中&#xff0c;页面跳转和参数传递是常见的需求。本文将通过一个实际案例——“我的咖啡店”小程序&#xff0c;详细介绍如何在微信小程序中实现页面跳转和参数传递。 页面跳转基础 在微信小程序中&#xff0c;页面跳转主要通过wx.navigat…

GESP CCF C++五级编程等级考试认证真题 2024年12月

GESP CCF C五级编程等级考试认证真题 202412 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 下面关于链表和数组的描述&#xff0c;错误的是&#xff08; &#xff09;。 A. 当数据数量不确定时&#xff0c;为了应对各种可能的情况&#xff0c;需要申…

Ubuntu安装教程+网页部署于服务器(前端+后端+mysql数据库)新版

Ubuntu安装配置教程 1、Ubuntu安装教程 1.1、下载Ubuntu 教程&#xff1a;https://blog.csdn.net/weixin_73404807/article/details/132296815?ops_request_misc&request_id&biz_id102&utm_termubuntu-20.04.6-desktop&utm_mediumdistribute.pc_search_res…

Visual Studio 、 MSBuild 、 Roslyn 、 .NET Runtime、SDK Tools之间的关系

1. Visual Studio Visual Studio 是一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供代码编写、调试、测试和发布等功能。它内置了 MSBuild、Roslyn 和 SDK Tools&#xff0c;并提供图形化界面来方便开发者进行项目管理和构建。与其他组件的关系&#xf…

精通Redis

目录 1.NoSQL 非关系型数据库 2.Redis 3.Redis的java客户端 4.Jedis 4.1Jedis快速入门 4.2Jedis连接池及使用 5.SpringDataRedis和RedisTemplate 6.SpringDataRedis快速入门 7.RedisSerializer 1.NoSQL 非关系型数据库 基础篇-02.初始Redis-认识NoSQL_哔哩哔哩_bilib…