网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
在嵌入式系统中,位操作和逻辑运算具有广泛的应用,主要是因为嵌入式系统通常需要对底层硬件进行直接控制和操作。
1.位左移
位左移的原理是将
value
的二进制表示向左移动n
位,右侧用零填充空位。每个位向左移动n
位后,相当于数值乘以2的n
次方。举个例子,假设有一个二进制数
value
,其二进制表示为10110
,现在要将其向左移动3
位:value = 10110; n = 3; result = value << n;
左移操作后,结果
result
的二进制表示为10110000
。
2.位右移
位右移的原理是将
value
的二进制表示向右移动n
位,左侧用符号位(对于有符号数)或零(对于无符号数)填充空位。每个位向右移动n
位后,相当于数值除以2的n
次方并取整。举个例子,假设有一个二进制数
value
,其二进制表示为10110000
,现在要将其向右移动3
位:value = 10110000; n = 3; result = value >> n;
右移操作后,结果
result
的二进制表示为00010110
。
- 位与
&
是位与(Bitwise AND)运算符。它用于执行两个二进制数的逐位与操作,返回的结果是一个新的二进制数,其中每个位都是两个原始二进制数相应位上的逻辑与结果。举个例子,假设有两个二进制数:
operand1 = 10110; operand2 = 11011;
使用位与运算符
&
对这两个二进制数进行位与操作:result = operand1 & operand2;
位与操作的结果是:
result = 10010;
4.位或
用于执行两个二进制数的逐位或操作,返回的结果是一个新的二进制数,其中每个位都是两个原始二进制数相应位上的逻辑或结果。
举个例子,假设有两个二进制数:
operand1 = 10110; operand2 = 11011;
使用位或运算符
|
对这两个二进制数进行位或操作:result = operand1 | operand2;
位或操作的结果是:
result = 11111;
- 位取反
位取反(Bitwise NOT)是一种位操作,用于对一个二进制数的每个位进行取反操作,即将每个位上的0变为1,将每个位上的1变为0。在大多数编程语言中,位取反操作使用波浪符号
~
表示。举个例子,假设有一个二进制数
value
,其二进制表示为10110
,现在要对其进行位取反操作:value = 10110; result = ~value;
取反操作后,结果
result
的二进制表示为01001
。
6.位异或
用于执行两个二进制数的逐位异或操作,返回的结果是一个新的二进制数,其中每个位都是两个原始二进制数相应位上的逻辑异或结果。
举个例子,假设有两个二进制数:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新