请教:老外写的一个表达式,百思不得其解,为什么要&-1,哪位高人指点一下!谢谢表达式如下:allowMask |= (Permission)((long)mask & (long)-1);是一个位或操作表达式,mask是一个长整型,Permission是一个枚举,现在想不通的地方是:(long)mask & (long)-1为什么要 & -1呢?目的是什么?想不通。

解决方案 »

  1.   

    -1==0xFFFFFFFF false bool谢谢. 但是我测试了一下, 发现好像-1==0xFFFFFFFF 等于 false
    是什么原因?
      

  2.   

    搞懂了, 原来是64位: FFFF FFFF FFFF FFFF
      

  3.   

    呵呵,实际就是异或操作看这样的东西,应该是个和掩码比较的东东如果你不明白,可以去看看tcp/ip部分有关子网掩码的部分