We would like to know how to performing Bitwise Operations with BigInteger.
import java.math.BigInteger; /*from w w w . ja va 2 s . c o m*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); boolean b = bi.testBit(3); b = bi.testBit(16); } }
Get the value of a bit
import java.math.BigInteger; /*from ww w . ja v a 2 s . c o m*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); boolean b = bi.testBit(3); b = bi.testBit(16); } }
Set a bit for BigInteger
import java.math.BigInteger; //from www.ja va 2 s . c o m public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.setBit(3); } }
Clear a bit in a BigInteger
import java.math.BigInteger; /*w w w . j av a2 s .c om*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.clearBit(3); } }
Flip a bit in a BigInteger
import java.math.BigInteger; /* ww w. j ava 2 s . co m*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.flipBit(3); } }
Shift the bits in a BigInteger
import java.math.BigInteger; //ww w . j a v a 2 s . c o m public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.shiftLeft(3); } }
Shift right in a BigInteger
import java.math.BigInteger; /* ww w . j a v a 2 s. co m*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.shiftRight(1); } }
xor a BigInteger
import java.math.BigInteger; /*from w ww .ja v a 2 s . c o m*/ public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.xor(bi); } }
and operation on BigInteger
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.and(bi); } }
not operation for BigInteger
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.not(); } }
or operation for BigInteger
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.or(bi); } }
andNot operation on BigInteger
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bi = bi.andNot(bi); } }
Retrieve the current bits in a byte array in twos-complement form.
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { byte[] bytes = new byte[] { 0x1, 0x00, 0x00 }; BigInteger bi = new BigInteger(bytes); bytes = bi.toByteArray(); } }