首页 > 其他 > 详细

移位操作符 位操作符

时间:2015-12-05 00:21:37      阅读:211      评论:0      收藏:0      [点我收藏+]

1.移位操作:把一个值的位左移或右移

     左移:<<       右移:>>

  逻辑移位:用0补齐

  算术移位:左移时用0补齐,右移时整数用0补齐,负数用1补齐

 

  1.左移:高位舍弃,低位补0

    5 << 2

    00000101   --->   00010100    由5变为20

    左移k位相当于扩大2^k倍

  2.右移:

    无符号位是逻辑移位,有符号位采用逻辑移位还是算术移位由编译器决定

    右移相当于缩小2^k倍

 

说明:1.采用有符号位右移程序不可移植

   2.移位负数位属于未定义行为,由编译器决定

      如   a << -5    

 

2.位操作符

  & 与         | 或          ^亦或    ~非

  1.把value中的n位(从右至左)上的值设为1

    value = value |  (1 << n);

  2.把value中的n位(从右至左)上的值设为0

    value = value & (~ (1 << n));

  3.对指定位进行测试为1则返回非零值

     value = value & (1 << n)  

 

移位操作符 位操作符

原文:http://www.cnblogs.com/hugue/p/5020717.html

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