Package gnu.math
Class BitOps
- java.lang.Object
-
- gnu.math.BitOps
-
public class BitOps extends Object
Implements logical (bit-wise) operations on infinite-precision integers. There are no BitOps object - all the functions here are static. The semantics used are the same as for Common Lisp.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static IntNum
and(IntNum x, int y)
Return the logical (bit-wise) "and" of an IntNum and an int.static IntNum
and(IntNum x, IntNum y)
Return the logical (bit-wise) "and" of two IntNums.static int
bitCount(int i)
static int
bitCount(int[] x, int len)
static int
bitCount(IntNum x)
Count one bits in an IntNum.static IntNum
bitOp(int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.static boolean
bitValue(IntNum x, int bitno)
Return the value of a specified bit in an IntNum.static IntNum
extract(IntNum x, int startBit, int endBit)
Extract a bit-field as an unsigned integer.static IntNum
ior(IntNum x, IntNum y)
Return the logical (bit-wise) "(inclusive) or" of two IntNums.static int
lowestBitSet(int i)
static int
lowestBitSet(IntNum x)
static IntNum
makeMask(int startBit, int endBit)
Create a mask with bits true form bits form startBit to endBit.static IntNum
not(IntNum x)
Return the logical (bit-wise) negation of an IntNum.static IntNum
reverseBits(IntNum x, int start, int end)
static void
setBitOp(IntNum result, int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.static IntNum
setBitValue(IntNum x, int bitno, int newValue)
Set the value of a specified bit in an IntNum.static int
shift(int x, int count)
static long
shift(long x, int count)
static int
shiftUnsigned(int x, int count)
static long
shiftUnsigned(long x, int count)
static int
swappedOp(int op)
Return the boolean opcode (for bitOp) for swapped operands.static boolean
test(IntNum x, int y)
Return true iff an IntNum and an int have any true bits in common.static boolean
test(IntNum x, IntNum y)
Return true iff two IntNums have any true bits in common.static IntNum
xor(IntNum x, IntNum y)
Return the logical (bit-wise) "exclusive or" of two IntNums.
-
-
-
Method Detail
-
bitValue
public static boolean bitValue(IntNum x, int bitno)
Return the value of a specified bit in an IntNum.
-
setBitValue
public static IntNum setBitValue(IntNum x, int bitno, int newValue)
Set the value of a specified bit in an IntNum.
-
test
public static boolean test(IntNum x, int y)
Return true iff an IntNum and an int have any true bits in common.
-
test
public static boolean test(IntNum x, IntNum y)
Return true iff two IntNums have any true bits in common.
-
and
public static IntNum and(IntNum x, int y)
Return the logical (bit-wise) "and" of an IntNum and an int.
-
and
public static IntNum and(IntNum x, IntNum y)
Return the logical (bit-wise) "and" of two IntNums.
-
ior
public static IntNum ior(IntNum x, IntNum y)
Return the logical (bit-wise) "(inclusive) or" of two IntNums.
-
xor
public static IntNum xor(IntNum x, IntNum y)
Return the logical (bit-wise) "exclusive or" of two IntNums.
-
swappedOp
public static int swappedOp(int op)
Return the boolean opcode (for bitOp) for swapped operands. I.e. bitOp (swappedOp(op), x, y) == bitOp (op, y, x).
-
bitOp
public static IntNum bitOp(int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.
-
setBitOp
public static void setBitOp(IntNum result, int op, IntNum x, IntNum y)
Do one the the 16 possible bit-wise operations of two IntNums.
-
makeMask
public static IntNum makeMask(int startBit, int endBit)
Create a mask with bits true form bits form startBit to endBit.
-
extract
public static IntNum extract(IntNum x, int startBit, int endBit)
Extract a bit-field as an unsigned integer.
-
lowestBitSet
public static int lowestBitSet(int i)
-
lowestBitSet
public static int lowestBitSet(IntNum x)
-
bitCount
public static int bitCount(int i)
-
bitCount
public static int bitCount(int[] x, int len)
-
bitCount
public static int bitCount(IntNum x)
Count one bits in an IntNum. If argument is negative, count zero bits instead.
-
shift
public static int shift(int x, int count)
-
shiftUnsigned
public static int shiftUnsigned(int x, int count)
-
shift
public static long shift(long x, int count)
-
shiftUnsigned
public static long shiftUnsigned(long x, int count)
-
-