Open In App

BigInteger andNot() Method in Java

Last Updated : 24 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The java.math.BigInteger.andNot(BigInteger val) method returns a BigInteger whose value is (this & ~val) where this to the current BigInteger with which the function is being used and val is the bigInteger passed to the function as a parameter. This method, which is equivalent to and(val.not()), is provided as a convenience for masking operations. This method returns a negative BigInteger if and only if this is negative and val is positive. The andNOT() method apply bitwise AND operation upon the current bigInteger and NOT value of bigInteger passed as parameter. 

Syntax:

public BigInteger andNot(BigInteger val)

Parameters: The method accepts one parameter val BigInteger type and refers to the value that needs to be complemented and AND’ed with the current BigInteger. 

Return Value: The method is used to return (this & ~val) where this to the current BigInteger with which the function is being used and val is the bigInteger passed to the function as a parameter. 

Examples:

Input: value1 = 2300, value2 = 3400
Output: 180
Explanation:
Binary of 2300 = 100011111100
Not of 3400 in binary signed 2's complement is 1111001010110111
AND of 100011111100 and 1111001010110111= 10110100
Decimal of 10110100 = 180.

Input: value1 = 432045, value2 = 321076
Output: 135561

Below programs illustrate the andNot() method of BigInteger. 

Example 1

Java




// Program Demonstrate andNot() method of BigInteger
 
import java.math.*;
 
public class GFG {
 
    public static void main(String[] args)
    {
 
        // Create 2 BigInteger objects
        BigInteger biginteger = new BigInteger("2300");
        BigInteger val = new BigInteger("3400");
 
        // Call andNot() method to find this & ~val
        BigInteger finalvalue = biginteger.andNot(val);
        String result
            = "Result of andNot operation between "
              + biginteger + " and " + val + " is "
              + finalvalue;
 
        // Print the result
        System.out.println(result);
    }
}


Output:

Result of andNot operation between 2300 and 3400 is 180

Example 2:

Java




import java.io.*;
import java.math.BigInteger;
 
public class GFG {
    public static void main(String[] args)
    {
        BigInteger bi1 = new BigInteger("101010", 3);
        BigInteger bi2 = new BigInteger("111100", 3);
 
        BigInteger result = bi1.andNot(bi2);
 
        System.out.println("b1    = " + bi1.toString(2));
        System.out.println("b2    = " + bi2.toString(2));
        System.out.println("result = "
                           + result.toString(2));
    }
}


Output

b1    = 100010001
b2    = 101101000
result = 10001


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads