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

嵌入式学习笔记(63)位操作实战

(1)给定一个整型数a,设置a的bit3,保证其他位不变。

a |= (1<<3)

(2)给定一个整形数a,设置a的bit3~bit7,保持其他位不变

a |= (0x1f<<3)

(3)给定一个整型数a,清除a的bit15,保证其他位不变。

a &= ~(1<<15)

(4)给定一个整形数a,清除a的bit15~bit23,保持其他位不变。

a &= ~(0x1ff<<15)

(5)给定一个整形数a,取出a的bit3~bit8。

a &= (0x3f<<3)

a >>= 3

(6)给一个寄存器的bit7~bit17赋值937

a &= ~(0x7ff<<7)

a |= (937<<7)

(7)给一个寄存器的bit7~bit17中的值加17

b = ((a & (0x7ff<<7))>>7 + 17)<<7

a &= ~(0x7ff<<7)

a |= b

(8)给一个寄存器的bit7~bit17赋值937,同时给bit21~bit25赋值17.

a &= ~((0x7ff<<7) | (0x1f<<21))

a |= ((937<<7) | (17<<21))

(9)用宏定义来完成位运算

截取变量的部分连续位:

#define GETBITS(x, n, m) ((x & (~(~(0U)<<(m-n+1)))<<(n-1)) >> (n-1))

分析:这个题目相当于我们(5)中做的事情,只不过要用宏来实现。

这个题目相当于是要把x的bit(n-1)到bit(m-1)取出来

复杂宏怎么分析:

((x & ~(~(0U)<<(m-n+1))<<(n-1)) >> (n-1))

第一步,先分清楚这个复杂宏分为几部分:2部分

(x & ~(~(0U)<<(m-n+1))<<(n-1)) >> (n-1)

分析为什么要>>(n-1),相当于是我们(5)中的第二步

第二步,继续解析剩下的:又分为2部分

x & ~(~(0U)<<(m-n+1))<<(n-1)

分析为什么要&,相当于我们(5)中的第一步

第三步,继续分析剩下的:

~  (~(0U)<<(m-n+1)) << (n-1)

这个分析时要搞清楚第2坨到底应该先左边取反再右边<<还是先右边<<再左边取反。

解法:第一,查C语言优先级表;第二,自己实际写个代码测试。

说明这个式子应该是 ~(~(0U)<<(m-n+1)) << (n-1) ,这就又分为2部分了

  嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。在评论区私信“嵌入式”0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

http://www.lryc.cn/news/207377.html

相关文章:

  • 8位机adc采样正弦波频率
  • react中使用监听
  • Java基础总结
  • 基于SSM的OA办公系统
  • 【第25例】IPD体系进阶:需求分析团队RAT
  • 5G与无人驾驶:引领未来交通的新潮流
  • FreeRTOS学习2018.6.27
  • 【异常】理解Java中的异常处理机制
  • 很久没写JAVA程序了,原来用GMAIL发送邮件这么简单
  • Spring Security获得认证流程解析(示意图)
  • scrapy typeerror: attrs() got an unexpected keyword argument ‘eq‘
  • 非侵入式负荷检测与分解:电力数据挖掘新视角
  • 抽丝剥茧,Redis使用事件总线EventBus或AOP优化健康检测
  • 【Tailwind CSS】当页面内容过少,怎样让footer保持在屏幕底部?
  • Docker基础管理
  • 基于YOLOv8模型的烟雾目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 【代码随想录01】数组总结
  • (SpringBoot)第二章:Spring创建和使用
  • 力扣刷题 day56:10-26
  • 『第四章』一见倾心:初识小雨燕(上)
  • elasticsearch-7.9.3 单节点启动配置
  • 【2024秋招】2023-10-9 同花顺后端笔试题
  • 完美的错误处理:Go 语言最佳实践分享
  • vue首页多模块布局(标题布局)
  • 嵌入式系统>嵌入式硬件知识
  • LeetCode 1402. 做菜顺序【排序,动态规划;贪心,前缀和,递推】1679
  • 【多线程】探索Java中的多线程编程
  • 【算法题】翻转对
  • 适用于 Mac 或 Windows 的 4 种最佳 JPEG/PNG图片 恢复软件
  • 位置信息API