// Pack.java - Demo of packing two ints into one long for efficiency. // Written April 2000 by Wayne Pollock, Tampa Florida USA. class Pack { public static void main ( String [] args ) { int i = 17, j = 22; long mask = -1L >>> 32; // 32 zeros, then 32 ones: 0x00000000FFFFFFFF // Note the >>> operator shifts in zeros. if ( args.length == 2 ) { i = Integer.parseInt( args[0] ); j = Integer.parseInt( args[1] ); } long l = ( (long) i << 32 ) | ( j & mask ); System.out.println( "packed values of " + i + " and " + j + ": " + l ); int x = (int) ( l >> 32 ); int y = (int) ( l & mask ); System.out.println( "Extracted values are " + x + " and " + y ); } }