xor_val = (xor_val Xor array(i)) And 255因为我只学了C#,没学过VB,还请大家指点。谢谢!不大懂 And 255是啥意思!

解决方案 »

  1.   

    xor_val = (xor_val ^ array(i)) & 255应该是这样的。
      

  2.   

    且运算相当于   & 运算符
      

  3.   

    Javaxor_val = (xor_val ^ array(i)) && 255
    应该是这样的。
      

  4.   

    这个是正确的。标准Basic里没有位运算且是弱类型判断的,它会像C/C++一样把0视为假,而非0视为真。
    换句话说,如果在qbasic里c=a and b等价于C#里的
    c=a && b。
    与C/C++不同的是,C/C++逻辑真的默认值(逻辑运算结果为真时的返回值)为1(0x00000001),而Basic标准里逻辑真的默认值为-1(0xffffffff)
    但在Visual Basic里加入了位运算的概念,当运算符两边都是数值时,And Or将被视为位运算符(当两边有一边为布尔值时仍然是逻辑运算)由于异或运算的返回值为数值型,255(0xff)也是数值型,所以这里的And应该是“位与”。
    等价于C#的写法就是:xor_val = (xor_val ^ array[i]) & 255;
    PS:这里不是Java版块么?怎么问起VB的问题来了……