当前位置: 首页 > news >正文

C++笔记之使用bitset对uint32_t类型变量对位状态判断

C++笔记之使用bitset对uint32_t类型变量对位状态判断

在这里插入图片描述

code review!

文章目录

  • C++笔记之使用bitset对uint32_t类型变量对位状态判断
    • 学习目标
    • 1. 实际应用场景
    • 2. uint32_t 在位标志存储中的应用
      • 2.1 uint32_t 定义与特性
      • 2.2 uint32_t 核心特点
      • 2.3 uint32_t 的实际应用
    • 3. std::bitset 详解
      • 3.1 std::bitset 基本概念
      • 3.2 std::bitset 主要特性
      • 3.3 std::bitset 常用操作详解
        • 3.3.1 基本位操作
        • 3.3.2 test() 方法详解
        • 3.3.3 其他实用方法
    • 4. 完整实现代码
      • 4.1 头文件包含
      • 4.2 使用 if 语句的实现
      • 4.3 封装为函数的实现
    • 5. 代码执行分析
      • 5.1 示例值分析
      • 5.2 不同值的测试结果
    • 6. 传统位操作对比
      • 6.1 传统位操作方法
      • 6.2 三种方法详细对比
    • 7. 高级应用示例
      • 7.1 批量位检查
      • 7.2 位操作实用工具
    • 8. 学习要点总结
      • 8.1 uint32_t 学习要点
      • 8.2 std::bitset 学习要点
      • 8.3 test() 方法要点

学习目标

通过一个实际的位标志检查场景,深入学习以下两个 C++ 核心概念:

  • uint32_t:32位无符号整数类型在标志位存储中的应用
  • std::bitset:位序列容器在状态判断中的高效使用

1. 实际应用场景

在嵌入式系统、硬件控制、网络协议等场景中,经常需要检查特定位的状态来判断系统状态或配置。
本例模拟一个典型的位标志检查场景:

  • 检查 uint32_t 状态寄存器的特定位(bit4 和 bit5)
  • 根据位的状态执行相应的处理逻辑:
    • 如果 bit4 为 0,执行操作 A(打印 123);如果 bit4 为 1,执行操作 B(打印 45
http://www.dtcms.com/a/270092.html

相关文章:

  • 2025年深圳杉川机器人性格测评和Verify测评SHL题库高分攻略
  • 论文略读:Parameter-efficient transfer learning for NLP
  • InstructBLIP:迈向具备指令微调能力的通用视觉语言模型
  • Go语言标识符命名规则详解:工程化实践
  • Spring的依赖注入(xml)
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (一)为什么RISC-V是颠覆性创新?
  • 安装 asciidoctor-vscode 最新版
  • 针对 SSD 固态硬盘的安全擦除 Secure Erase
  • Kotlin协程中的Job详解
  • 如何用Python编程计算权重?
  • Anolis OS 23 架构支持家族新成员:Anolis OS 23.3 版本及 RISC-V 预览版发布
  • 数据库设计精要:完整性和范式理论
  • 去掉长按遥控器power键后提示关机、飞行模式的弹窗
  • 数据提取之lxml模块与xpath工具
  • 基于Java+SpringBoot 协同过滤算法私人诊所管理系统
  • 系统架构设计师论文分享-论系统安全设计
  • IoTDB:专为物联网场景设计的高性能时序数据库
  • 把word中表格转成excle文件
  • 基于GeoTools的根据Shp文件生成完全包围格网实战
  • Oracle 存储过程、函数与触发器
  • AI标注平台label-studio之二添加机器学习后端模型辅助标注
  • vue3官方文档学习心得
  • SpringCloud系列 - Gateway 网关功能(五)
  • 人体坐姿检测系统开发实战(YOLOv8+PyTorch+可视化)
  • 本地部署 R 语言环境运行软件 RStudio Server 并实现外部访问
  • 玩具语音方案选型决策OTP vs Flash 的成本功耗与灵活性
  • window wsl 环境下编译openharmony,HarmonyOS 三方库 FFmpeg
  • VLLM 调用有哪些超参数; clean_up_tokenization_spaces是什么
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 20250708-03-string结构及命令详解_笔记