zoukankan      html  css  js  c++  java
  • 位逻辑运算符

    对二进制提供运算提供支持是C语言区别于其他高级语言的重要特征

    位运算有6个运算符:按位取反~,左移<<,右移>>,按位与&,按位或|和按位异或^,仅按位取反是单目运算符(结合方向:自右至左),其他都是双目运算符(自左至右)

    由于操作数在实现位操作时按二进制进行运算,所以它们不能是floatdouble型,一般是无符号型整数,也可以是字符型,因为字符型可以看作是8位二进制表示的整数,操作数可以是变量、常量、表达式

    按位异或:0^0 =0,0^1=1,1^0=1,1^1=0,

    :char x; x=10&8;printf(“%d “,x);//8

    00001010

    00001000(按位与&)

    00001000

    按位与运算符用于把特定的二进制位清0(屏蔽),

    例如 a11011010

         b: 11110000

               1101000

    相当于把a的低4位屏蔽,而高4位不变

    将特定的二进制位与1异或可以使这些二进制位的值按位取反

    :             11011010

               00001111(^)

               11010101

    凡是与1异或的位都便反了,而与0异或的位保持原来的值

    使用按位逻辑的需要注意一点

    表示7的逻辑反的方法是~0x7,而最好不要用0xfff8,因为~0x716位机上的表示是11111111111110000xfff8,但在32位机上的表示是0xfffffff8

    优先级

    按位与、或、异或和移位运算符的优先级均低于算术运算符,但是要高于赋值运算符,按位取反的优先级最高(在运算符中仅低于圆括号)

    此外,按位与>按位异或>按位或

    逗号运算符(双目运算符,字左至右)

    z=x*(y=3)z=(y=3,x*y)是等价的

  • 相关阅读:
    【设计模式:单例模式】使用单例模式载入properties文件
    Java 强引用,软引用,弱引用
    sharepreference实现记住password功能
    WWDC2015
    activity之栈管理
    LeetCode:Palindrome Number
    ZOJ 3822 Domination(概率dp)
    WCF报 当前已禁用此服务的元数据发布的错误
    HTML常见标签总结
    xml基础总结
  • 原文地址:https://www.cnblogs.com/emptyCoder/p/5152089.html
Copyright © 2011-2022 走看看