DataInputStream reader = new DataInputStream(socket.getInputStream());
int flag = reader.readShort() & 0xffff;前面int flag = reader.readShort()我知道是读一个值.后面& 0xffff;的作用是什么呢?
 &不是按位于运算符吗,通常都用在if里.判断2个并列关系.那么在这里的含义是什么?通常用在哪里呢?好处是什么呢

解决方案 »

  1.   

    就是就是将读到的short转成无符号形式
    比如读到short -1,转成 65535
      

  2.   

    把有符号的short类型转换成无符号的int型
      

  3.   

    还有个问题:
    &不是通常用在 if( a!=b & c==b) 这样的判断里面.表示2个条件同时为真if才为真.
     reader.readShort() & 0xffff 他又是怎样的一种运算呢?是怎么计算的呢?
      

  4.   


    非也  if( a!=b && c==b) 这才是相与 &是位运算符  
    &&是逻辑运算符