public int test(int x){
     x= x&0xff;
     int y = 1;
     y=~y;
     x=x|y;
     return x;
}
1   附0xff01 , 返回0xff
2   附 1  返回1
3   附0xf1  返回 oxff
4   附0xf1  返回1
哪个是正确的?

解决方案 »

  1.   

    & 按位与
    | 按位或
    ~ 按位非
    ^ 按位异或
    数字前加0x表示十六进制
    数字前加0表示八进制
    其实我只是复习一下,没别的意思,呵呵。
      

  2.   

    我来做吧,既然没人做我就挑3,4这两个答案的输入作为X的输入,也就是X=0XF1,因为x是int型,但你可以不管它,因为它马上和0XFF做&运算,所以这样x就=0X000000F1,然后y=1,其实是=0X00000001,然后y做非运算,y=0XFFFFFFFE,然后x|y = 0XFFFFFFFF 也就是-1
    这个时候y是不变的  如果x=1的话  那么x实际就是0X00000001  那么也应该是-1第一个其实输出也是-1
    所以选1,3.因为0XFF符号扩展就是-1