| 
					
				 | 
			
			
				@@ -0,0 +1,72 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.its.common.utils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.nio.ByteBuffer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class Unsigned { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Unsigned() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Byte 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static short getUnsignedByte(ByteBuffer bb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return((short)(bb.get() & 0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static short getUnsignedByte(ByteBuffer bb, int position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return((short)(bb.get(position) &(short)0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedByte(ByteBuffer bb, int value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.put((byte)(value & 0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedByte(ByteBuffer bb, int position, int value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.put(position,(byte)(value & 0xff)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Short 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static int getUnsignedShort(ByteBuffer bb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return(bb.getShort() & 0xFFFF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static int getUnsignedShort(ByteBuffer bb, int position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return(bb.getShort(position) & 0xFFFF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedShort(ByteBuffer bb, int value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.putShort((short)(value & 0xFFFF)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedShort(ByteBuffer bb, int position, int value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.putShort(position,(short)(value & 0xFFFF)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Integer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static long getUnsignedInt(ByteBuffer bb) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return(bb.getInt() & 0xFFFFFFFFL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static long getUnsignedInt(ByteBuffer bb, int position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return(bb.getInt(position) & 0xFFFFFFFFL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedInt(ByteBuffer bb, long value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.putInt((int)(value & 0xFFFFFFFFL)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void putUnsignedInt(ByteBuffer bb, int position, long value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bb.putInt(position,(int)(value & 0xFFFFFFFFL)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // TEST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void main(String [] argv) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ByteBuffer buffer = ByteBuffer.allocate(20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        buffer.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Unsigned.putUnsignedByte(buffer, 255); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Unsigned.putUnsignedByte(buffer, 128); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Unsigned.putUnsignedShort(buffer, 0xCAFE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Unsigned.putUnsignedInt(buffer, 0xCAFEBABE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(int i = 0; i < 8; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            System.out.println("" + i + ": " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    + Integer.toHexString((int)getUnsignedByte(buffer, i))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println("2: " + Integer.toHexString(getUnsignedShort(buffer, 2))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println("4: " + Long.toHexString(getUnsignedInt(buffer, 4))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |