首页 > 其他 > 详细

位运算操作符_

时间:2014-03-10 09:41:45      阅读:356      评论:0      收藏:0      [点我收藏+]

>> 算数右移

a>>b ==>a/2(b%32) :a除以2的b模32次方

*12>>1 ==> 12/2(1) =6

*12>>33 ==> 12/2(1) =6

*-12>>2 ==> -12/2(2) = -3

*-12>>66 ==> -12/2(66%32) = -12/2(2) = -3

*128>>2 ==> 128/2(2%32) = 128/2(2) = 32

 

exp1

  int a1 = 12>>1; //变量a1取值为6

12 的二进制表达式

    0000 1100

     右移动一位

    0000 0110

    十进制:6

exp2

   int a2 = 12 >>2; //-3

   舍弃二进制数的最后两位.在二进制数的开头增加两位符号位.-12是负数故增加两个符号位.

+12===>-12

     0000 1100

  | 1取反

     1111  0011

  | +1

      1111 0100 <---12的二进制形式

      1111 0100

 

    负数-〉正数

      1 -1

     1111 1101

     1111 1100

      2 取反

     0000 0011 ==>3

exp3

    int a3 = 128 >>2 ;//32

   0000 0000

   1000 0000

右移动两位=>

   0010 0000 ==>32

 

<< 左移位运算

舍弃二进制开头一位,在二进制数尾部增加一位0

公式: a*2(b) <== a<<b :数字a左移b位结果为a*2的b次方

位运算操作符_,布布扣,bubuko.com

位运算操作符_

原文:http://www.cnblogs.com/cici-new/p/3590903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!