long l = Double.doubleToLongBits(d); //d是输入参数
char up = (char)((l&0x0000FFFF00000000L)>>>32)

解决方案 »

  1.   

    (char)((l&0x0000FFFF00000000L)>>>32)
    这句话没明白,谁能给详细解读下?
      

  2.   

    0x0000FFFF00000000L十六进制long型整数,这个相当于掩码
    与输入的l做与操作,也就是说保留输入参数16进制下与掩码F相同位置的值
    >>>右移32二进制位,估计是取出掩码位置的数据作为char赋给变量
      

  3.   

    原程序是定位hashcode用的我还是不太明白。。能举个例子说明下吗?