Returns 16 bits from the long number.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//package org.ancora.SharedLibrary;
/**
* Methods for bit manipulation.
*
* @author Joao Bispo
*/
public class Util{
private static final long MASK_16_BITS = 0xFFFFL;
private static final int MASK_BIT_1 = 0x1;
/**
* Returns 16 bits from the long number.
*
* @param data
* @param offset one of 0 to 3
* @return
*/
public static int get16BitsAligned(long data, int offset) {
// Normalize offset
offset = offset%4;
//System.out.println("offset:"+offset);
// Align the mask
long mask = MASK_16_BITS << 16*offset;
//System.out.println("Mask:"+Long.toHexString(mask));
//System.out.println("Data:"+Long.toHexString(data));
// Get the bits
long result = data & mask;
// Put bits in position
return (int) (result >>> (16*offset));
}
}
Related examples in the same category