Java >> Java tutorial >  >> Java

Java-program til at udføre bitvise operationer

I denne tutorial lærer vi, hvordan man udfører bitvise operationer ved at tage input fra brugeren. Bitvise operatorer er de operatorer, der bruges til at manipulere individuelle bits af et tal. Disse er meget brugte, mens de udfører opdaterings- og forespørgselsoperationer på et binært indekseret træ. Det anvendes på heltalstyperne long, int, short, char og byte. Men før du går videre, hvis du ikke er bekendt med begrebet bitwise operator i java, så tjek artiklen om Operators in Java.

Input: (5 &4)

( 5 | 4 )

( 5 ^ 4 )

( 5 <<4 )

( 5>> 4 )

Output:

4

5

1

80

0

To tilfælde opstår for ovenstående problem:

Case 1:Når værdier er brugerdefinerede

Tilfælde 2:Når værdier er foruddefinerede

Lad os se på hver af disse sager separat.

Program 1:At udføre bitvis operation

I dette program vil vi se, hvordan man udfører bitvise operationer i java, når værdierne er brugerdefinerede. Her vil vi først bede brugeren om at indtaste værdierne, og derefter vil vi udføre de bitvise operationer.

Algorithme:

  1. Start
  2. Her vil vi bruge en switch-case til at vælge mellem forskellige bitvise operatorer som &, |, ^, ~, <>.
  3. Deklarer en variabel for samme.
  4. Bed brugeren om at initialisere den.
  5. Baseret på den valgte operation, erklærer du to variable.
  6. Bed brugeren om at initialisere variablerne.
  7. Vis resultatet efter at have udført de bitvise handlinger.
  8. Stop.

Lad os se på nedenstående eksempel for en bedre forståelse.

//Java Program to perform the bitwise operation
import java.util.Scanner;
public class Main
{
   public static void main(String args[])
   {   
       //Take input from the user
       //Create instance of the Scanner class
        Scanner s = new Scanner(System.in);
        while(true)
        {
            System.out.println("");
            
            System.out.println("Choose the operation you want to perform ");
            System.out.println("Choose 1 for & ");
            System.out.println("Choose 2 for | ");
            System.out.println("Choose 3 for ^ ");
            System.out.println("Choose 4 for ~");
            System.out.println("Choose 5 for <<");
            System.out.println("Choose 6 for >>");
            System.out.println("Choose 7 for EXIT");
            int n = s.nextInt();
            switch(n)
            {
                case 1:
                    System.out.println("Enter the two numbers to perform operations ");
                    System.out.print("Enter the first number : ");
                    int x = s.nextInt();
                    System.out.print("Enter the second number : ");
                    int y = s.nextInt();
                    System.out.println("Result of "+x+"&"+y+" = " + (x&y));
                    break;
 
                case 2:
                    System.out.println("Enter the two numbers to perform operations ");
                    System.out.print("Enter the first number : ");
                    int p = s.nextInt();
                    System.out.print("Enter the second number : ");
                    int q = s.nextInt();
                    System.out.println("Result of "+p+"|"+q+" = " + (p |q ));
                    break;
 
                case 3:
                    System.out.println("Enter the two numbers to perform operations ");
                    System.out.print("Enter the first number : ");
                    int a = s.nextInt();
                    System.out.print("Enter the second number : ");
                    int b = s.nextInt();
                    System.out.println("Result of "+a+"^"+b+" = " + (a ^ b));
                    break;
 
                case 4:
                    System.out.print("Enter the number : ");
                    int c = s.nextInt();
                    System.out.print("The result of ~"+c+ " is "+(~c));
                    break;
 
                case 5:
                    System.out.println("Enter the two numbers to perform operations ");
                    System.out.print("Enter the first number : ");
                    int e = s.nextInt();
                    System.out.print("Enter the second number : ");
                    int f = s.nextInt();
                    System.out.println("Result of "+e+"<<"+f+" = " + (e<<f));
                    break;
                    
                case 6:
                    System.out.println("Enter the two numbers to perform operations ");
                    System.out.print("Enter the first number : ");
                    int g = s.nextInt();
                    System.out.print("Enter the second number : ");
                    int h = s.nextInt();
                    System.out.println("Result of "+g+">>"+h+" = " + (g>>h));
                    break;
                case 7:
                    System.exit(0);
            }
        }
    }
}


Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
1
Indtast de to tal for at udføre handlinger
Indtast det første tal:2
Enter det andet tal:3
Resultat af 2&3 =2

Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
2
Indtast de to tal for at udføre operationer
Indtast det første tal:4
Indtast det andet tal:5
Resultat af 4|5 =5

Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
3
Indtast de to tal for at udføre handlinger
Indtast det første tal:5
Indtast det andet tal:6
Resultat af 5^6 =3

Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
4
Indtast tallet:Resultatet af ~7 er -8
Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
5
Indtast de to tal for at udføre handlinger
Indtast det første tal:8
Enter det andet tal:9
Resultat af 8<<9 =4096

Vælg den handling, du vil udføre
Vælg 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
6
Enter de to tal for at udføre operationer
Indtast det første tal:1
Indtast det andet tal:2
Resultat af 1>>2 =0

Vælg den operation, du ønsker at udføre
Vælg e 1 for &
Vælg 2 for |
Vælg 3 for ^
Vælg 4 for ~
Vælg 5 for <<
Vælg 6 for>>
Vælg 7 for EXIT
7

Program 2:At udføre bitvise handling

I dette program vil vi udføre de bitvise operationer, når værdierne er foruddefineret i programmet.

Algorithme:

  1. Start
  2. Her vil vi bruge en switch-case til at vælge mellem forskellige bitvise operatorer som &, |, ^, ~, <>.
  3. Deklarer to variable.
  4. Initialiser den.
  5. Udfør alle de bitvise operatorer som &, |, ^, ~, <>.
  6. Vis resultatet af hver bitvise handling.
  7. Stop.

Lad os se på nedenstående eksempel for en bedre forståelse.

//Java Program to perform bitwise operation
public class Main 
{
    public static void main(String[] args)
    {
        // Declare and initialize the variables
        int a = 3;
        int b = 2;
        // bitwise and
        System.out.println("Result of "+a+"&"+b+" = " + (a & b));
        // bitwise or
        System.out.println("Result of "+a+"|"+b+" = " + (a | b));
        // bitwise xor
        System.out.println("Result of "+a+"^"+b+" = " + (a ^ b));
        System.out.println("Result of ~"+a+" = " + ~a);
        System.out.println("Result of "+a+" << "+b+" = " + (a << b));
        System.out.println("Result of "+a+" >> "+b+" = " + (a >> b));
        // When combined with assignment operator 
        a &= b;
        System.out.println("Result after a&=b is a= " + a);
    }
}


Resultat af 3&2 =2
Resultat af 3|2 =3
Resultat af 3^2 =1
Resultat af ~3 =-4
Resultat af 3 <<2 =12
Resultat af 3>> 2 =0
Resultat efter a&=b er a=2


Java tag