The output of following code:
System.out.println( Long.toBinaryString( Double.doubleToRawLongBits( 1 ) ) );
System.out.println( Long.toBinaryString( Double.doubleToRawLongBits( 1024 ) ) );
Is:
11111111110000000000000000000000000000000000000000000000000000
100000010010000000000000000000000000000000000000000000000000000
Why this code prints one bit more for value of 1024?