How do I convert BigInteger into another radix number?

In this example you’ll see how we can convert a java.math.BigInteger number into another radix such as binary, octal and hexadecimal.

package org.kodejava.math;

import java.math.BigInteger;

public class BigIntegerConversion {
    public static void main(String[] args) {
        BigInteger number = new BigInteger("2021");
        System.out.println("Number      = " + number);
        System.out.println("Binary      = " + number.toString(2));
        System.out.println("Octal       = " + number.toString(8));
        System.out.println("Hexadecimal = " + number.toString(16));

        number = new BigInteger("FF", 16);
        System.out.println("Number      = " + number);
        System.out.println("Number      = " + number.toString(16));
    }
}

The result of our examples:

Number      = 2021
Binary      = 11111100101
Octal       = 3745
Hexadecimal = 7e5
Number      = 255
Number      = ff

How do I do math operation for BigDecimal?

package org.kodejava.math;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalOperation {
    public static void main(String[] args) {
        BigDecimal decimalA = new BigDecimal("98765432123456789");
        BigDecimal decimalB = new BigDecimal("10");

        decimalA = decimalA.add(decimalB);
        System.out.println("decimalA = " + decimalA);

        decimalA = decimalA.multiply(decimalB);
        System.out.println("decimalA = " + decimalA);

        decimalA = decimalA.subtract(decimalB);
        System.out.println("decimalA = " + decimalA);

        decimalA = decimalA.divide(decimalB, RoundingMode.DOWN);
        System.out.println("decimalA = " + decimalA);

        decimalA = decimalA.pow(2);
        System.out.println("decimalA = " + decimalA);

        decimalA = decimalA.negate();
        System.out.println("decimalA = " + decimalA);
    }
}

Our code snippet results are:

decimalA = 98765432123456799
decimalA = 987654321234567990
decimalA = 987654321234567980
decimalA = 98765432123456798
decimalA = 9754610582533151990855052972412804
decimalA = -9754610582533151990855052972412804

How do I do math operation for BigInteger?

package org.kodejava.math;

import java.math.BigInteger;

public class BigIntegerOperation {
    public static void main(String[] args) {
        BigInteger numberA = new BigInteger("98765432123456789");
        BigInteger numberB = BigInteger.TEN;

        numberA = numberA.add(numberB);
        System.out.println("numberA = " + numberA);

        numberA = numberA.multiply(numberB);
        System.out.println("numberA = " + numberA);

        numberA = numberA.subtract(numberB);
        System.out.println("numberA = " + numberA);

        numberA = numberA.divide(numberB);
        System.out.println("numberA = " + numberA);

        numberA = numberA.mod(numberB);
        System.out.println("numberA = " + numberA);

        numberA = numberA.pow(2);
        System.out.println("numberA = " + numberA);

        numberA = numberA.negate();
        System.out.println("numberA = " + numberA);
    }
}

Our class result are:

numberA = 98765432123456799
numberA = 987654321234567990
numberA = 987654321234567980
numberA = 98765432123456798
numberA = 8
numberA = 64
numberA = -64

How do I get the name of a class?

package org.kodejava.lang;

import java.util.Calendar;
import java.math.BigDecimal;

public class ClassName {
    public static void main(String[] args) {
        // Get the name of the classes below.
        Class<?> clazz = String.class;
        System.out.println("Class Name: " + clazz.getName());

        clazz = Calendar.class;
        System.out.println("Class Name: " + clazz.getName());

        clazz = BigDecimal.class;
        System.out.println("Class Name: " + clazz.getName());
    }
}

The result of the code snippet above are:

Class Name: java.lang.String
Class Name: java.util.Calendar
Class Name: java.math.BigDecimal

How do I know if a class object is an interface or a class?

package org.kodejava.lang;

public class CheckForInterface {
    public static void main(String[] args) {
        // Checking whether Cloneable is an interface or class
        Class<?> clazz = Cloneable.class;
        boolean isInterface = clazz.isInterface();
        System.out.println(clazz.getName() + " is an interface = " + isInterface);

        // Checking whether String is an interface or class
        clazz = String.class;
        isInterface = clazz.isInterface();
        System.out.println(clazz.getName() + " is an interface = " + isInterface);
    }
}
java.lang.Cloneable is an interface = true
java.lang.String is an interface = false