bitops.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import java.math.BigInteger;
  2. public class bitops {
  3. public static void main(String arg[]) {
  4. /* a) - d) -> use BigInteger */
  5. BigInteger a1 = new BigInteger(Integer.toBinaryString(200), 2);
  6. BigInteger a2 = new BigInteger(Integer.toBinaryString(16), 2);
  7. System.out.println("16 + 200 = " + a1.add(a2).toString(2));
  8. System.out.println("16 - 200 = " + a1.subtract(a2).toString(2));
  9. BigInteger c1 = new BigInteger(Integer.toBinaryString(130), 2);
  10. int c2 = 3;
  11. System.out.println("130 >> 3 = " + c1.shiftRight(c2).toString(2));
  12. BigInteger d1 = new BigInteger(Integer.toBinaryString(130), 2);
  13. int d2 = 7;
  14. System.out.println("130 << 7 = " + d1.shiftLeft(d2).toString(2));
  15. /* e) - m) -> use int */
  16. System.out.println("250 >>> 3 = " + Integer.toString(250 >>> 3, 2));
  17. /* <<< doesn't work with int ??? */
  18. System.out.println("-3000 <<< 4 = " + Integer.toString(-3000 << 4, 2));
  19. System.out.println("~450 = " + Integer.toString(~450, 2));
  20. System.out.println("80 & 190 = " + Integer.toString(80 & 190, 2));
  21. System.out.println("100|(-390) = " + Integer.toString(100 | (-390), 2));
  22. System.out.println("(-1350)^(-4990) = " + Integer.toString((-1350) ^(-4990),2));
  23. System.out.println("(3000 & ~(-10 << 4)) | (1<<4) = " +
  24. Integer.toString((3000 & ~(-10 << 4)) | (1 << 4),2));
  25. System.out.println("(-3000 & ~(50 >> 2)) | (-10<<4) = " +
  26. Integer.toString((-3000 & ~(50 >> 2)) | (-10 << 4),2));
  27. System.out.println("(~300 & ~(20 << 4)) | (100 >> 4) = " +
  28. Integer.toString((~300 & ~(20 << 2)) | (100 >> 4),2));
  29. }
  30. }