zoukankan      html  css  js  c++  java
  • 移位操作符 位操作符

    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)  

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------学习记录,都是基本知识------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 相关阅读:
    关于iterator的一点疑惑
    shuffle()方法
    List简单使用笔记
    Arrays.asList()
    多项式ADT(数组存储多项式系数和指数)笔记
    《数据结构与算法分析C语言描述》源码网盘分享
    C语言实现链表
    typedef的用法
    #ifndef的用法
    mysql创建数据库和数据表模板
  • 原文地址:https://www.cnblogs.com/hugue/p/5020717.html
Copyright © 2011-2022 走看看