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

【C语言】位运算 {位运算的应用 :关闭位,判断位,打开位,转置位;位域}

一、基础

  1. 参与位运算的对象只能是整型数据(int, unsigned, char),不能为实型

  2. 移位操作符

    • 按位左移n位表示:原数*2^n
    • 按位右移n位表示:原数/2^n(整除)
    • 上述运算只适用于左右移位时被溢出舍弃的位不包含1的情况

二、位运算的应用

掩码:一串二进制数字通过与目标数字进行按位操作来达到屏蔽指定位的需求而实现的。掩码具有目标性,关注位为1。

  1. 按位与

    • 关闭位(清零)[~掩码&目标值]

      举例:关闭第4位和第7位
      11001000 //目标
      01001000 //掩码
      10110111 //~掩码
      10000000 //结果

    • 判断位(取一个数中的某些指定位)[掩码 & 目标值]

      举例:判断后四位
      11001010 //目标
      00001111 //掩码
      00001010 //结果

    • 其他

      字符小写转大写:ch&=~32;

      提示:对应大小写字母ASSIC码的二进制数只有第六位不同,因此可以通过操作第六位实现大小的相互写转换

  2. 按位或

    • 打开位(对一个数据的某些位赋1)[掩码 | 目标值]

      举例:打开3,4,6,8位
      11001010 //目标
      00110101 //掩码
      11111111 //结果

    • 其他

      字符大写转小写:ch|=32;

  3. 按位异或

    • 转置位(使指定位翻转)[掩码 ^ 目标值]

      举例:转置第2,5位

      11000000 //目标

      01001000 //掩码

      10001000 //结果

    • 其他

      1. 交换两变量的值:a=a^b; b=a^b; a=a^b;
      2. 字符大小写互换:ch^=32;
      3. 两个相同的整数按位异或得0
      4. 任何整数与0按位异或都得它本身

三、位域

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/news/11865.html

相关文章:

  • 服装标签二维码,要如何制作?含品牌案例
  • SQL Server 数据操控,视图和索引
  • copilot使用教程
  • X509证书以及相关java常用接口
  • 如何采药才最值当——记忆化搜索
  • 锁子甲 bulid+sim
  • 【SpringBoot】使用JWT验证
  • Redis 6.0的多线程是如何工作的
  • 决策树算法介绍
  • MySQL索引及SQL优化
  • SpringBoot中对Bean的处理方法以及第三方Bean处理的方式
  • 快问快答--时间序列常用的数据增强方法有哪些?python有集成库吗?
  • pandas中df.groupby详解?
  • 车企跨界背后,智能手机进入新增长时代
  • BBR算法
  • C++——模板初阶与泛型编程
  • 【Linux】进程地址空间
  • 两层神经网络的参数求导过程
  • Redis分布式锁的实现方式及底层原理
  • 数字图像处理(第三版)绪论笔记
  • vue监视数据的原理、收集表单数据
  • 「SQL面试题库」 No_36 树节点
  • 【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)
  • 【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度
  • Python遥感开发之FY的批量处理
  • 关于二叉树访问顺序的选择题
  • 中核科技:科技匠心 智启未来
  • huggingface transformer模型介绍
  • 【记录】windows中edge常用快捷键
  • 统信UOS专业版系统安装教程 - 手动分区安装UOS系统