zoukankan      html  css  js  c++  java
  • C# 中的位运算

    在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。
    运算符号
    意义
    运算对象类型
    运算结果类型
    对象数
    实例
    ~
    位逻辑运算
    整型,字符型
    整型
    1
    ~a
    &
    位逻辑运算
    2
    a & b
    |
    位逻辑运算
    2
    a | b
    ^
    位逻辑异或运算
    2
    a ^ b
    << 
    左移运算
    2
    a<<4
    >> 
    右移运算
    2
    a>>2
     
    1、位逻辑非运算
    位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。
    比如,对二进制的10010001进行位逻辑非运算,结果等于01101110,用十进制表示就是:
    ~145等于110;对二进制的01010101进行位逻辑非运算,结果等于10101010。用十进制表示就是~85等于176。
    2、位逻辑与运算
    位逻辑与运算将两个运算对象按位进行与运算。与运算的规则:1与1等于1,1与0等于0。
    比如:10010001(二进制)&11110000等于10010000(二进制)。
    3、位逻辑或运算
    位逻辑或运算将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,
    0或0等于0。比如10010001(二进制)| 11110000(二进制)等于11110001(二进制)。
    4、位逻辑异或运算
    位逻辑异或运算将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,
    1异或0等于1,0异或0等于0。即:相同得0,相异得1。
    比如:10010001(二进制)^11110000(二进制)等于01100001(二进制)。
    5、位左移运算
    位左移运算将整个数按位左移若干位,左移后空出的部分0。比如:8位的byte型变量
    byte a=0x65(即二进制的01100101),将其左移3位:a<<3的结果是0x27(即二进制的00101000)。
    6、位右移运算
     位右移运算将整个数按位右移若干位,右移后空出的部分填0。比如:8位的byte型变量
    Byte a=0x65(既(二进制的01100101))将其右移3位:a>>3的结果是0x0c(二进制00001100)。
     
    在进行位与、或、异或运算时,如果两个运算对象的类型一致,则运算结果的类型就是运算对象的类型。比如对两个int变量a和b做与运算,运算结果的类型还是int型。如果两个运算
    对象的类型不一致,则C#要对不一致的类型进行类型转换,变成一致的类型,然后进行运算。
    类型转换的规则同算术运算中整型量的转换则一致。
    由位运算符连接整型量而成的表达式就是位运算表达式。
  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/yiki/p/758536.html
Copyright © 2011-2022 走看看