C语言中循环移位和算术移位是怎么样的?怎么理解 ?

如题所述

对于位运算,来说,左移是将一个数的全部二进制位全部左移若干位,对于移动后空出的位,用0来补充。而对于右移,将一个数的二进制位全部右移若干位,对于 移动后空出的位可以用0或者1来补充。左移没有循环移位和算术移位说法。而对于右移,若右移补充0则为循环右移,若补充1则为算术右移。因为算数运算针对的是有符号数,对于一个计算机中数据来说,若首位为1则为负数。所以补充1这个可以解决符号问题。当然这个说法并不准确,但也许会对你记忆产生帮助。
温馨提示:答案为网友推荐,仅供参考
相似回答