java.math.BigInteger flipBit(int n)

Description

On this document we will be showing a java example on how to use the flipBit(int n) method of BigInteger Class. Basically this method returns a BigInteger whose value is equivalent to this BigInteger with the designated bit flipped. (Computes (this ^ (1<<n)).)

Let’s take a for example a BigInteger 12 which is equivalent to binary 1100. So if we have a value n=2, then the Binary equivalent would become 1000. Remember that the counting starts 0 index. Binary 1000 is equal to 8 in BigInteger so that would be the returned value.

Notes:

  • this method throws an Arithmetic exception if n supplied is negative.

Method Syntax

public BigInteger flipBit(int n)

Method Argument

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

Method Returns

The flipBit() method this ^ (1<<n).

Compatibility

Requires Java 1.1 and up

Java BigInteger flipBit() Example

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

package com.javatutorialhq.java.examples;

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

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

public class BigIntegerFlipBitExample {

	public static void main(String[] args) {	
		
		// initialize a BigInteger object		
		BigInteger val1 = new BigInteger("19");
		/*
		 * Note: 19 in binary is 10011
		 */
				
		// get user input
		System.out.print("Enter the bit number you want to flip:");
		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 
		BigInteger result = val1.flipBit(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 index of bit to be flipped. When we say bit flipping is that 0 becomes 1 and vice versa. Using the initially declared BigInteger and the index provided by the user, we will be using simulating the behavior of the flipBit() method.

Sample Output

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

BigInteger flipBit() example output