All pastes #418082 Raw Edit

Miscellany

public text v1 · immutable
#418082 ·published 2007-03-31 12:11 UTC
rendered paste body
First, lets say I have a value (of type long)

long value;

and I serialize it into a byte[]
		serialized[0] = (byte)((value & 0xFF00000000000000L) >> 56);
		serialized[1] = (byte)((value & 0x00FF000000000000L) >> 48);
		serialized[2] = (byte)((value & 0x0000FF0000000000L) >> 40);
		serialized[3] = (byte)((value & 0x000000FF00000000L) >> 32);
		serialized[4] = (byte)((value & 0x00000000FF000000L) >> 24);
		serialized[5] = (byte)((value & 0x0000000000FF0000L) >> 16);
		serialized[6] = (byte)((value & 0x000000000000FF00L) >> 8);
		serialized[7] = (byte)(value & 0x00000000000000FFL);

And then unserialize it again:
value2 = (long) (((serialized[0] & 0xFF) << 56) + 
                 ((serialized[1] & 0xFF) << 48) + 
	 	 ((serialized[2] & 0xFF) << 40) + 
	 	 ((serialized[3] & 0xFF) << 32) + 
		 ((serialized[4] & 0xFF) << 24) + 
		 ((serialized[5] & 0xFF) << 16) + 
		 ((serialized[6] & 0xFF) << 8) + 
		  (serialized[7] & 0xFF));

But now value differs greatly from value2.. what is my mistake?