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

嵌入式第十七课!!!!位运算!!!

这是我们C语言篇章的最后一节!!!

位运算符和位运算

优先级是这样排列的:算术预算符 > 位运算符 > 逻辑运算符;

所有的位运算操作数都必须是整型或是与整型相兼容类型,枚举类型可以;

按位运算与“&”

举个例子:

int main(void)
{unsigned char P2 = 0xAA;P2 &= 0xEF;return 0;
}

这个运算符可以指定位为0 ,其他位不变

按位运算或“|”

举个例子:

int main(void)
{int i = 3;//0000 0011int j = 6;//0000 0110i | j  = 7;//0000 0111return 0;
}

这个运算符可以指定为1 , 其他位不变

按位运算异或“^”

int main(void)
{int i = 3;//0000 0011int j = 6;//0000 0110i ^ j  = 5;//0000 0101return 0;
}

这个运算符的逻辑是两个数位数一样的置0,不一样的位数置1

它的作用是指定位翻转,其他不变。

按位取反符“~”

int main(void)
{int i = 3;\\0x0000 0011~i = 0x1111 1100return 0;
}

这是一个单目运算符,每一位取反;

左移运算符“<<”

int main(void)
{int i = 0xFFFFFFFFi << 2 = 0xFFFFFFFCreturn 0;
}

给 i 从左往右移两位,高位截断,低位补零;

int main(void)
{unsigned char P0 = 0xFF;P0 |= (1 << 2) | (1 << 0);printf("%X\n", P0);return 0;
}

通过这种方法,就可以给特定的位取1,在这个例子里可以将1位和2位取1,然后给p0的1位和2位取0 ,剩余全部取1.

右移运算符“>>”

与上同理,只不过是右移。

以上就是今天和大家分享的全部内容!!!从明天开始将会和大家继续分享数据结构的内容,不定时将会更新C语言简单小项目的制作,感谢大家的阅读!!!!

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

相关文章:

  • 考取锅炉司炉工证需要学习哪些专业知识?
  • Linux 用户与组管理:从配置文件到实操命令全解析
  • golang的函数
  • YOLO V11 + BotSort行人追踪定位项目
  • 风光储并离网切换仿真模型(下垂控制一次调频)
  • 详解K8s集群搭建:从环境准备到成功运行
  • 【问题思考总结】CART树如何剪枝?从CART树的生成到剪枝以及为什么CTt一定小于Ct?【图文】
  • 在多租户或多服务共享 Redis 时,如何做逻辑隔离或权限控制?
  • 【数据结构】-----排序的艺术画卷
  • ESD监控系统确保工厂生产设备的静电安全
  • 浏览器【详解】内置Observer(共五种,用于前端监控、图片懒加载、无限滚动、响应式布局、生成安全报告等)
  • cesium FBO(四)自定义相机渲染到Canvas(离屏渲染)
  • 开源工具FossFLOW,绘制技术图表
  • 嵌入式GPU图像渲染工具全景实用指南(i.MX8MP平台)
  • Python深度解析与爬虫进阶:从理论到企业级实践
  • ubuntu 镜像克隆
  • Git 实现原理剖析
  • 【编号394】阿姆河流域土地利用分布数据(1990-2015)
  • 智能问数系统的调研
  • 【工具分享】模拟接口请求响应的Chrome插件ModResponse
  • 什么是doris
  • 第七章 愿景12 小萍分享《人性的弱点》
  • 软件性能优化:善用80-20法则,精准突破瓶颈
  • grafana/lock-stack 日志 Pipeline 配置
  • 前端渲染三国杀:SSR、SPA、SSG
  • npm报错:npm install 出现“npm WARN old lockfile”
  • 工程化(二):为什么你的下一个项目应该使用Monorepo?(pnpm / Lerna实战)
  • R 语言文件读写、批量读取与图片保存实用代码汇总
  • 逻辑回归参数调优实战指南
  • 【Linux系列】Vim 中删除当前单词