& 与运算  |或运算

解决方案 »

  1.   

    var i = 1 & 0;//i=0,按位与
    var j = 1 | 0;//j=1,按位或
    http://msdn.microsoft.com/zh-cn/library/sbf85k1c(VS.80).aspx
      

  2.   

    楼主好好看看吧,MSDN上的
    http://msdn.microsoft.com/zh-cn/library/8xftzc7e.aspx
      

  3.   

    << 左移XX位嘛,多形像。还有>>这是右移
      

  4.   

    撸主知道什么是bit,什么是byte么?
      

  5.   

    先从逻辑角度说一下:1.&&是逻辑与,&是按位与。
    &&只用于布尔值,&可用于布尔值和位。
    如果把二进制1看作真,0看作假,则&&与&的逻辑结果一致。
    2.||是逻辑或,|是按位或。
    ||只用于布尔值,|可用于布尔值和位。
    如果把二进制1看作真,0看作假,则||与|的逻辑结果一致。
    但是逻辑或与位按或还是有区别:
    计算 a||b时,若a为true,则不会再对b计算(调用函数或取值)
    true ||b的写法编译器会直接给出警告:检测到无法访问的代码。
    计算a|b时,即使a为true也会计算b。
    private Boolean getTrue()
    {
        System.Diagnostics.Debug.Print("getTrue");
        return true;
    }
    Boolean b = true | getTrue();
    仍然会输出"getTrue"。
    下面的代码作为参考:
    System.Diagnostics.Debug.Print((0 & 0).ToString());
    System.Diagnostics.Debug.Print((1 & 0).ToString());
    System.Diagnostics.Debug.Print((0 & 1).ToString());
    System.Diagnostics.Debug.Print((1 & 1).ToString());System.Diagnostics.Debug.Print((false & false).ToString());
    System.Diagnostics.Debug.Print((true & false).ToString());
    System.Diagnostics.Debug.Print((false & true).ToString());
    System.Diagnostics.Debug.Print((true & true).ToString());System.Diagnostics.Debug.Print((false && false).ToString());
    System.Diagnostics.Debug.Print((true && false).ToString());
    System.Diagnostics.Debug.Print((false && true).ToString());
    System.Diagnostics.Debug.Print((true && true).ToString());System.Diagnostics.Debug.Print((0 | 0).ToString());
    System.Diagnostics.Debug.Print((1 | 0).ToString());
    System.Diagnostics.Debug.Print((0 | 1).ToString());
    System.Diagnostics.Debug.Print((1 | 1).ToString());System.Diagnostics.Debug.Print((false | false).ToString());
    System.Diagnostics.Debug.Print((true | false).ToString());
    System.Diagnostics.Debug.Print((false | true).ToString());
    System.Diagnostics.Debug.Print((true | true).ToString());System.Diagnostics.Debug.Print((false || false).ToString());
    System.Diagnostics.Debug.Print((true || false).ToString());
    System.Diagnostics.Debug.Print((false || true).ToString());
    System.Diagnostics.Debug.Print((true || true).ToString());
    输出的结果是
    0
    0
    0
    1
    False
    False
    False
    True
    False
    False
    False
    True
    0
    1
    1
    1
    False
    True
    True
    True
    False
    True
    True
    True
      

  6.   

    然后从用途角度说一下。
    &&、&、||、|都可以处理逻辑。而且||比|还优化了一些。
    |与&除了可以处理逻辑(不建议)外,最主要的用途是处理二进制的位运算。
    |相当于“置”或“打开”,&相当于“清零”或关闭。
    例如,想用8位二进制数表示8个灯泡。0表示灭,1表示亮。
    10010011表示亮灭灭亮灭灭亮亮。
    那么,如果要关闭前三个灯,你只需要
    10010011&00011111。结果是 00010011。
    &可以这样理解:依照右边的数对左边的数操作:将0所表达的位清零(关闭),保留1所表达的位。
    你也可以理解为每一位都把看成真0看成假,执行逻辑运算。
    即相当于十进制的147&31=19。
    如果我要开启前三个灯,只需要。
    10010011|11100000。结果是11110011。、
    |可以这样理解:依照右边的数对左边的数操作:将1所表达的位置1(打开),保留0所表达的位。
    这相当于147|224=243。使用这种方式,可以用二进制数表示很多状态、报警。
      

  7.   

    再说一下位运算:
    <<是左移。>>是右移(有符号)。一些语言提供了无符号右移(>>>)。10000000>>3=00010000
    十进制就是 128>>3=16。
    00010000<<2=01000000
    十进制16<<2=64。通常,为了方便,使用八位无符号的整数作为一个字节(Byte)进行这样的运算。
    但是请注意:
    Byte位移之后会变成int类型。
      

  8.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。
      

  9.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
      

  10.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
    不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门!
      

  11.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
    这个符号不是底层的东西 是常识
      

  12.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
    不仅是底层,只要你涉及到编程,你都会用到,如果你还没用到,说明你还没有入门!大神说下 什么时候用到过 让小弟也学习下
      

  13.   

    都是位运算符& 与运算 两位均为真则为真,其他假 
    1&1才为真,其他假 |或运算 两位不同为真,其他假
    1|0 或0|1 才为真 ,其他假嘻嘻嘻
      

  14.   

    还真有空回答他!这种明显 GOOGLE 都可以知道的东西,哎……
    有一个 送分王子
      

  15.   

    1、可以表示逻辑  且 、或关系  返回结果是bool值  对应的还有&& ||,至于此时& 与&&的区别就是&就算已经知道返回结果肯定为false了也会把所有的判断都执行一遍,而&&只要确认false,后面的就不会执行2、二进制运算符
    与操作  1 & 0 = 0
    或操作  1 |0 = 1
      

  16.   

    运算符对应的还有
    <<左移操作
    >>右移操作估计lz不是计算机专业出生,或者就是上学时都不去上课的
      

  17.   

    1&1=1
    1&0=0
    0&0=01|0=1
    1|1=1
    0|0=0真假
      

  18.   


    你确定你找过?这是 google 的链接!
    C# 逻辑运算
    这是百度的:
    C# 逻辑运算
    嘴硬有啥用?这是每一本 C# 教科书中的基本教学点。
      

  19.   

    貌似 && 和 || 是短路运算符  而 & 和 | 是非短路的比如 false && null返回false   true || null 返回true而 false & null 返回错误  true | null 返回错误
    至于二进制编码,貌似用到的概率不高(于c#而言)。用到的时候再搜一下资料就会用了
      

  20.   

    这个 |和|| &和&&的结果貌似一样 在bool方面
      

  21.   


    从计算结果上看是一样.
    但是
    false && f()函数f不会被执行,因为后面是什么结果都是false
    false & f()函数f会被执行,虽然最后结果也是false
    同样的
    true || f()函数f不会被执行
    true | f()函数f会被执行
    因此逻辑运算还是用&&和||比较好。
    位运算时,只能用&、|
      

  22.   

    &和|运算在将某位清零或者置1上超级好用的好么,谁用谁知道
      

  23.   


    既然你以c++给自己贴金(而不是认真学习c#),那么建议你先回去学习c++。不是 我感觉&|这个符号应该是底层的东西 像是C++这种比较适合底层开发的语言可能经常用到 我学C#没用到过。。
    还真不一定,有一些特性的开关还是用位来控制的
    我写c/s改界面还是会有遇到过的