首页 > C > 位运算 阅读:57,774

本右移(>>)运算

< 上一页 左移(<<)运算 位运算优先级 下一页 >

右移运算符为>>。将一个数a向右移动n位记为:a>>n。比如将12向右移动2位如何计算呢?12的二进制为00001100,那么右移动2位为:00000011,即3

12>>23

右移动运算分为两种右移,一种为逻辑右移,在移动过程中,左边位用0填充。一种为算术右移,在移动过程中,左边用符号位来填充。

比如对于有符号数:10000011,对于逻辑右移,向右移动3位,那么左边用0填充,变成了:00010000。而对于算术右移,向右移动3位,那么左边用11为符号位)填充,变成了11110000。而对于01000011,算术右移3位,那么左边用00为符号位)填充,变成了00001000

C语言中,右移运算符为算术右移运算符,即左边用符号位来填充。

int main(void)

{

       int a = -3;

       int b = 10;

       int c = a >> 2;

       int d = b >>1;

       printf(“a>>2=%d, b>>1=%d\n”, c, d);

       return 0;

}

< 上一页 左移(<<)运算 位运算优先级 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注