单片机c语言左移右移区别(单片机流水灯左移右移程序)

左移运算符

在单片机C语言中,左移运算符使用"<<". 左移运算符将一个数的所有二进制位向左移n位。位移后,高位用0填充。例如,如果将数0x35(二进制为00110101)向左移两位,结果为0xd4(二进制为11010100)。

单片机c语言左移右移区别(单片机流水灯左移右移程序)

右移运算符

与左移运算符相对应的是右移运算符,使用">>". 右移运算符将一个数的所有二进制位向右移n位。位移后,对于带符号的数,使用符号位填充高位;对于无符号的数,高位用0填充。例如,如果将数0x35(二进制为00110101)向右移两位,结果为0x0d(二进制为00001101)。

区别

左移运算符和右移运算符的区别在于,左移运算符将数的所有二进制位向左移n位,相当于把数乘以2的n次方;右移运算符将数的所有二进制位向右移n位,相当于把数除以2的n次方。这两个运算符特别适合于对单片机中的位操作,例如打开或关闭某个位。

另外,左移运算符还有一个用途是对一系列比特字段进行打包。例如,对于一个"unsigned short"类型的变量,可以将其拆分成4个8位比特,然后使用左移运算符将这4个8位比特打包形成一个32位比特的数。相反,右移运算符可以用于解包。

需要注意的是,左移运算符和右移运算符的用法时刻要注意溢出问题,如果位移后导致高位发生变化,那么这个数的值就会发生变化。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcunng1.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月26日 上午11:46
下一篇 2023年4月26日 上午11:46

猜你喜欢