如题  球高手 解释?

解决方案 »

  1.   

     不显示删除回复显示所有回复显示星级回复显示得分回复 c# 里面 int a=7,b=8;int c=a<<4;d=c&b;问什么 输出d 为0?[问题点数:40分]c=a<<4. a  111<<4=1110000
    b=1000.           0001000与运算会吧,上面两个结果与肯定是0  
      

  2.   

    << 左移运算符 (<<) 将第一个操作数向左移动第二个操作数指定的位数
    n<<4,相当于 n*16 
    01110000
    1000
    & 计算操作数的逻辑按位“与”
      

  3.   

    c=112; 转换成2进制是1110000
    d=8;转换成2进制后是1000那么1110000&0001000 根据位逻辑与运算规则:1与1等于1,1与0等于0
    得到结果是:0000000 即0
      

  4.   

    int a=7,b=8;int c=a<<4;d=c&b
    a = 7用二进制是这样的0000 0111 
    b = 8 是0000 1000
    c = a << 4 是将a左移4位为0111 0000
    d = c&b 是逻辑与 0000 1000 和 0111 0000,没有同一个位都为1的所以结果为0
      

  5.   

    首先:<<为左移运算符,a=7,是int类型.。a的二进制为0111,左移4位后得到c,二进制为:01110000。
    其次看b,二进制为:1000。
    二者用&运算。
    0····01110000     //为c
    0····00001000     //为b
    ————————————
    0····00000000     //为d所以输出为0。
      

  6.   

    UP,看来LZ不搞清符号的含义啊