java.math.BigInteger shiftRight(int n)

Description

On this document we will be showing a java example on how to use the shiftRight(int n) method of BigInteger Class. Basically this method returns a BigInteger whose value is (this >> n). Sign extension is performed. The shift distance, n, may be negative, in which case this method performs a left shift. (Computes floor(this / 2n).)

Let’s take a for example a BigInteger 12 which is equivalent to binary 1100. So if we have a value n=1, then the binary 1100 shifted to the right by 1 would become 110. The equivalent of 110 is 12 which be the returned value of the method shiftRight().

Notes:

Method Syntax

public BigInteger shiftRight(int n)

Method Argument

Data Type Parameter Description
int n index of bit to shift.

Method Returns

The flipBit() method this >> n

Compatibility

Requires Java 1.1 and up

Java BigInteger shiftRight(int n) Example

Below is a java code demonstrates the use of shiftRight(int n) method of BigInteger class. The example presented might be simple however it shows the behavior of the shiftRight(int n) method.

package com.javatutorialhq.java.examples;

import java.math.BigInteger;
import java.util.Scanner;

/*
 * A java example source code to demonstrate
 * the use of shiftRight(int n) method of BigInteger class
 */

public class BigIntegerShiftRightExample {

	public static void main(String[] args) {

		// initialize a BigInteger object
		BigInteger val1 = new BigInteger("12");
		/*
		 * Note: 17 in binary is 10001
		 */
		

		// get user input
		System.out.print("Enter the shift distance:");
		Scanner s = new Scanner(System.in);
		String input = s.nextLine();
		s.close();

		/*
		 * convert the input to Integer unboxing feature will be used to
		 * transform Integer to primitive int
		 */
		Integer inputBitNumber = Integer.parseInt(input);

		// get the new BigInteger result after shifting to the right
		BigInteger result = val1.shiftRight(inputBitNumber);
		System.out.println("Result of the operation:" + result);

	}

}

This example is a lot simpler than it looks. The first part is the declaration of a BigInteger. User are then asked to provide the shift distance. We then shifted the BigInteger object to the right with the specified shift distance. Result is printed at the end.

Sample Output

Below is the sample output when you run the above example.

BigInteger shiftRight() example output