![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微机原理与接口技术
_NJZY_
这个作者很懒,什么都没留下…
展开
-
逻辑右移和算术右移
汇编语言中的逻辑右移(SHR)是将各位依次右移指定位数,然后在左侧补0,算术右移(SAR)是将各位依次右移指定位数,然后在左侧用原符号位补齐。比如,在汇编语言中,对于算术右移,如果最高位为1,则补1,否则补0, 如将10000000算术右移7位,应该变成11111111,而逻辑右移7位,则不考虑符号位,变为00000001,这点就是算术右移和逻辑右移的区别。在汇编中,可以用算术右移来进行有转载 2015-02-23 18:16:50 · 7912 阅读 · 2 评论 -
C语言 有符号数和无符号数的移位运算
对于无符号数来说,左移和右移都是用的逻辑移位,即左移低位空出的补0,右移高位空出的补0;对于有符号数来说,用的是算术移位,左移多出的会移进符号位,右移在gcc编译器下是算术右移,即空出的高位补符号位。例:int16_t n = 0x4000; //此时符号位为0n int16_t num = 0x8000; //此时符号位为1num >>= 1; //此时n为0xC原创 2015-02-23 18:35:22 · 16099 阅读 · 0 评论