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

学习嵌入式的第十六天——C语言——位运算

typedef

对数据类型命名,取另外的名字

 //type define 
//类型 定义 --- 不是类型定义
//作用,给已有类型起别名

用法:

typedef   int a; //a就是int的别名 --代表int类型 

位运算

 二进制位的运算   
嵌入式:
通过位运算 控制 硬件

对数据进行二进制位上的操作

浮点数不能做位运算

&(与 一假则假 )

一般用于清零操作

某一位与上一个0,得0

|(或  一真则真)

一般用于置1操作

某一位或上一个1得1

~(取反  真假相对)  

对1取反得0,对0取反得1

^(异或  相同为假 不同为真)

不用第三方,实现两个数的交换

加密

int a = 0x35;

 0011 0101  //0x35
^0000 0110  //0x6
-------------------
0011 0011 //0x33      
0000 0110  //0x6
------------------
0011 0101 //0x35

<<(左移  表示二进制位的向左移动)

a<<n  
表示,将数值 a 左移 n位 
int a = 1;       
0000 0001 //1    0
0000 0010 //2    1
0000 0100 //4    2
0000 1000 //8    3

左移,每左移一位 相当于 乘以 2

>>(右移  表示二进制位的向右移动)

高位补什么?

逻辑右移 区别在于看要移动数据是否有符号 ---默认最高位 补0
算术右移 //有符号 --- 最高位 补 符号位 

练习:

http://www.dtcms.com/a/325169.html

相关文章:

  • tlias智能学习辅助系统--原理篇-SpringBoot原理-自动配置-自定义starter
  • 【走进Docker的世界】深入理解Docker网络:从模式选择到实战配置
  • #Datawhale AI夏令营#第三期全球AI攻防挑战赛(AIGC技术-图像方向)
  • [Shell编程] Shell的正则表达式
  • P3232 [HNOI2013] 游走,solution
  • Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件
  • 整数规划-分支定界
  • Win10清理C盘步骤
  • 展锐平台(Android15)WLAN热点名称修改不生效问题分析
  • 最大子数组和-一维动态规划
  • C++ 黑马 引用
  • 一款轻量、免费、无广告,强大的演示工具,支持屏幕放大、涂鸦、截图、录屏
  • PostgreSQL因为A/B switch以及group表过多导致WAL full的情况讨论
  • 托福单词词组积累 2025-08-10
  • 大模型 MCP服务案例详细讲解
  • 线程池的核心线程数与最大线程数怎么设置
  • NVIDIA Jetson AGX Orin 全景解析——边缘计算的高性能选择
  • 攻击实验(ARP欺骗、MAC洪范、TCP SYN Flood攻击、DNS欺骗、DHCP饿死)
  • VGG改进(1):基于Global Attention模块的详解与实战
  • RL代码实践 02——策略迭代
  • ai生成完成后语音通知
  • Starlink卫星终端对星策略是终端自主执行的还是网管中心调度的?
  • 如何部署图床系统 完整教程
  • python魔法属性__module__与__class__介绍
  • 学习numpy详解
  • Shell脚本-其他变量定义
  • 全面了解机器语言之kmeans
  • Redis缓存穿透、缓存击穿、缓存雪崩
  • Mock与Stub
  • 组合期权:水平价差