单片机学习--c语言中的右移位运算

2021-01-25 22:16

阅读:564

标签:情况   两种   应该   定义   bsp   出现   有符号数   无符号   左移   

移位操作:简单的把一个值的位向左或向右移动。在左移过程中,值最左边的几位被丢弃,右边多出来的几个空位则由0补齐。


 

右移操作:却面临着一个左移操作没有的问题。从左边移入新值时,可以选择两种方案

                1、逻辑移位,左边移入的用0填充。

                2、算术移位,左边移入的位由原先该值的符号位决定,符号位为1则填充1,符号位为0则填充0

          原值:10010110                逻辑移位后:00100101   算术移位:11100101


 

warning:无符号值的所有移位操作,都是逻辑移位。  对于有符号值得移位操作采用哪种方法,就要根据你所使用得编译器来解决。   一个程序如果出现了有符号数得右移操作,它就是不可移植的。

 

a左移27位的操作。

          对于这些未定义 | 移位的操作比操作的位数还要多的情况,    具体效果都是根据编译器来定的。它们的结果也很可能不可预测。所以应该避免使用这种操作

                        

单片机学习--c语言中的右移位运算

标签:情况   两种   应该   定义   bsp   出现   有符号数   无符号   左移   

原文地址:https://www.cnblogs.com/mengnan-konghai/p/12859240.html


评论


亲,登录后才可以留言!