I'm reading 《Effective Java》, and it used (int)(l^(l>>>32)) to convert a long number to int number, but I usually use (int)l to do the same job and it also works very well. I'm wondering if there is a difference between the two methods.Could anyone explain it to me, thanks very much.