int rp = 0xff << 24 | 0xff << 16;
int bp = 0xff << 24 | 0xff;
int wp = 0xff << 24 | 0xff << 16 | 0xff << 8 | 0xff;
看不懂这些,请帮我说说,这些怎么做哦?我通过debug 跟踪发现,这3个变量的值是
rp=-65536
bp=-16776961
wp=-1
它是怎么算的哦?

解决方案 »

  1.   

    位左移= =0xff<<24=0xff000000
    0xff<<16=0xff0000
    0xff<<8=0xff00rp=0xffff0000
    bp=0xff0000ff
    wp=0xffffffff这是16进制,再转化为10进制就好了具体的网上查一下,这个是最最基础的东西了
      

  2.   

    0xff       0000,0000,0000,0000,0000,0000,1111,1111  
      

  3.   

    都是位运算
    右位移<<  或运算|
      

  4.   

    int rp = 0xff < < 24 | 0xff < < 16 
    rp得到的数据为0xffff0000
    int bp = 0xff < < 24 | 0xff;
    bp得到的数据为0xff0000ff
    int wp = 0xff < < 24 | 0xff < < 16 | 0xff < < 8 | 0xff; 
    wp得到的数据为0xffffffff
    再因为java中的整数用补码表示,负数的值为取反加1,rp取反为0x0000ffff,再加1就等0x00010000,十进制为65536,因为是个负数所以为-65536
    别的bp、wp依次类推