哪位能给我详细的说说下面的方法会把传入的  value 过滤成什么效果  以及为什么会有这个效果?
小弟位运算太差了,希望能请位指点指点public int filter(int value) {
    return ((value & 0xff00ff00) | ((value & 0xff0000) >> 16) | ((value & 0xff) << 16));
}

解决方案 »

  1.   

    In java, int type is represented using 32 bits, i.e. 4 bytes. Let's call these 4 bytes A, B, C, D.value = ABCDvalue & 0xff00ff00 = A0C0
    value & 0x00ff0000 = 0B00 >> 16 = 000B
    value & 0x000000ff = 000D << 16 = 0D00then, A0C0 | 000B | 0D00 = ADCB.
      

  2.   

    谢谢 z_lping 
    那这么说这个方法就是把value的二进制的 第一个8位  和 第三个8位  对换一下了
    如果输入的是十进制   那么等于它对这个十进制做了什么有规律的改变呢?
      

  3.   

    我的意思是如果传入的value 是十进制的int  把value的二进制的   第一个8位     和   第三个8位对换   那么在十进制上会表现出来什么呢
    也就是 这个方法输入  和 输出的  十进制  会有什么规律