prerequisite : BigInteger Basics
The java.math.BigInteger.shiftRight(int n) method returns a BigInteger whose value is (this >> n). The shift distance, n, may be negative, in which case this method performs a left shift. The shiftRight() method will move each digit in a number’s binary representation right by n times and the last bit in the direction of the shift is replaced by 0. This shiftRight() method Computes floor(this / 2^n).
Syntax:
public BigInteger shiftRight(int n)
Parameter: The method takes one parameter n of integer type which refers to the shift distance in bits.
Return Value: The method returns the BigInteger after shifting the bits to right by n times.
Exceptions: The method might throws an ArithmeticException if the shift distance is an Integer.MIN_VALUE.
Examples:
Input: BigInteger = 2300, n = 3 Output: 287 Explanation: Binary Representation of 2300 = 100011111100 Shift distance, n = 3. After shifting 100011111100 right 3 times, Binary Representation becomes 100011111 and Decimal equivalent of 100011111 is 287. Input: BigInteger = 35000, n = 5 Output: 1093
Below program illustrates shiftRight(index) method of BigInteger:
// Program to demonstrate shiftRight() // method of BigInteger import java.math.*;
public class GFG {
public static void main(String[] args)
{
// Create BigInteger object
BigInteger biginteger = new BigInteger( "2300" );
// Create a int i for Shift Distance
int i = 3 ;
// Call shiftRight() method on bigInteger at index i
// store the return value as BigInteger
BigInteger changedvalue = biginteger.shiftRight(i);
String result = "After applying shiftRight by Shift Distance " + i +
" on " + biginteger + " New Value is " + changedvalue;
// Print result
System.out.println(result);
}
} |
After applying shiftRight by Shift Distance 3 on 2300 New Value is 287
Reference: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#shiftRight(int)