移位运算符的用法(C|图解(数形结合理解)移位操作)

位操作符操纵的整数的类型可以是有符号的也可以是无符号的。如果操作数为负数,则位操作符如何处理其操作数的符号位依赖于机器。于是它们的应用可能不同:在一个应用环境中实现的程序可能无法用于另一应用环境。

对于位操作符,由于系统不能确保如何处理其操作数的符号位,所以强烈建议使用unsigned整型操作数。

<< 和 >> 操作符提供移位操作,其右操作数标志要移动的位数。这两种操作符将其左操作数的各个位向左(<<)或向右(>>)移动若干个位(移动的位数由其右操作数指定),从而产生新的值,并丢弃移出去的位。

左移操作符(<<)在右边插入 0 以补充空位。对于右移操作符(>>),如果其操作数是无符号数,则从左边开始插入 0;如果操作数是有符号数,则插入符号位的副本或者 0 值,如何选择需依据具体的实现而定。移位操作的右操作数不可以是负数,而且必须是严格小于左操作数位数的值。否则,操作的效果未定义。

不管是左移还是右移,都有位的填充和舍弃。

理解移位操作,最好的方式是数形结合

移位运算符

负整数操作:

-End-

您可以还会对下面的文章感兴趣

最新评论

  1. 寡妇缘
    寡妇缘
    发布于:2022-04-27 21:45:00 回复TA
    用环境。对于位操作符,由于系统不能确保如何处理其操作数的符号位,所以强烈建议使用unsigned整型操作数。<< 和 >> 操作符提供移位操作,其右操作数标志要移动
  1. 诸新新琰
    诸新新琰
    发布于:2022-04-27 16:18:13 回复TA
    天呐,可怕
  1. 叶婕贞东
    叶婕贞东
    发布于:2022-04-27 16:18:13 回复TA
    哇/嚯/害/服了

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友