logo

Java의 비트 연산자


연산자 모든 프로그래밍 언어의 기본 구성 요소를 구성합니다. Java도 논리, 산술, 관계형 등 다양한 계산 및 기능을 수행해야 하는 필요성에 따라 사용할 수 있는 다양한 유형의 연산자를 제공합니다. 이러한 연산자는 제공하는 기능에 따라 분류됩니다. 다음은 몇 가지 유형입니다.

Java에서 문자열을 int로 캐스팅하는 방법
  1. 산술 연산자
  2. 단항 연산자
  3. 할당 연산자
  4. 관계 연산자
  5. 논리 연산자
  6. 삼항 연산자
  7. 비트 연산자
  8. 교대 연산자

이 문서에서는 Bitwise 연산자에 관해 알아야 할 모든 내용을 설명합니다.

비트 연산자

비트 연산자는 숫자의 개별 비트를 조작하는 데 사용됩니다. 모든 정수 유형(char, short, int 등)과 함께 사용할 수 있습니다. 이진 인덱스 트리의 업데이트 및 쿼리 작업을 수행할 때 사용됩니다.



이제 Java의 각 비트 연산자를 살펴보겠습니다.

1. 비트 OR(|)

이 연산자는 '|'로 표시되는 이항 연산자입니다. 입력 값의 비트별 OR을 반환합니다. 즉, 비트 중 하나가 1이면 1을 제공하고 그렇지 않으면 0을 표시합니다.

예:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise OR Operation of 5 and 7  0101 | 0111  ________  0111 = 7 (In decimal)>

2. 비트 AND(&)

안드로이드 유튜브에서 광고 차단하기

이 연산자는 '&'로 표시되는 이항 연산자입니다. 입력 값의 비트 단위 AND를 반환합니다. 즉, 두 비트가 모두 1이면 1을 제공하고 그렇지 않으면 0을 표시합니다.

예:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise AND Operation of 5 and 7  0101 & 0111  ________  0101 = 5 (In decimal)>

3. 비트별 XOR(^)

이 연산자는 '^'로 표시되는 이항 연산자입니다. 입력 값을 비트 단위로 XOR하여 반환합니다. 즉, 해당 비트가 다르면 1을, 그렇지 않으면 0을 표시합니다.

예:

문자열을 json으로 변환 java
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. 비트 보수(~)

이 연산자는 '~'로 표시되는 단항 연산자입니다. 이는 입력 값의 1의 보수 표현을 반환합니다. 즉, 모든 비트가 반전되어 모든 0에서 1, 모든 1에서 0이 된다는 의미입니다.

예:

a = 5 = 0101 (In Binary)  Bitwise Complement Operation of 5  ~ 0101  ________  1010 = 10 (In decimal)>

메모: 컴파일러는 해당 숫자에 대한 2의 보수를 제공합니다. 즉, 10의 2의 보수는 -6이 됩니다.

자바
// Java program to illustrate // bitwise operators public class operators {  public static void main(String[] args)   b));  // bitwise xor  // 0101 ^ 0111=0010 = 2  System.out.println('a^b = ' + (a ^ b));  // bitwise not  // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010  // will give 2's complement (32 bit) of 5 = -6  System.out.println('~a = ' + ~a);  // can also be combined with  // assignment operator to provide shorthand  // assignment  // a=a&b  a &= b;  System.out.println('a= ' + a);   }>

산출
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

보조공간:O(1)

시간복잡도:O(1)

문자열을 배열로 변환 java
자바
// Demonstrating the bitwise logical operators class GFG {  public static void main (String[] args) {    String binary[]={  '0000','0001','0010','0011','0100','0101',  '0110','0111','1000','1001','1010',  '1011','1100','1101','1110','1111'  };    // initializing the values of a and b   int a=3; // 0+2+1 or 0011 in binary  int b=6; // 4+2+0 or 0110 in binary    // bitwise or  int c= a | b;    // bitwise and  int d= a & b;    // bitwise xor  int e= a ^ b;    // bitwise not  int f= (~a & b)|(a &~b);  int g= ~a & 0x0f;      System.out.println(' a= '+binary[a]);  System.out.println(' b= '+binary[b]);  System.out.println(' a|b= '+binary[c]);  System.out.println(' a&b= '+binary[d]);  System.out.println(' a^b= '+binary[e]);  System.out.println('~a & b|a&~b= '+binary[f]);  System.out.println('~a= '+binary[g]);  } }>

산출
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

비트 시프트 연산자(시프트 연산자)

시프트 연산자는 숫자의 비트를 왼쪽이나 오른쪽으로 이동하여 숫자에 각각 2를 곱하거나 나누는 데 사용됩니다. 숫자를 2로 곱하거나 나누어야 할 때 사용할 수 있습니다.

통사론:

 number   shift_op   number_of_places_to_shift;>

교대 연산자의 유형:

시프트 연산자는 다시 4가지 유형으로 나뉩니다. 이것들은:

  1. 부호 있는 오른쪽 시프트 연산자(>>)
  2. 부호 없는 오른쪽 시프트 연산자(>>>)
  3. 왼쪽 시프트 연산자(<<)
  4. 부호 없는 왼쪽 시프트 연산자(<<<)

메모: Java의 시프트 연산자에 대한 자세한 내용은 다음을 참조하세요. Java의 시프트 연산자 .

사용자 입력을 위해 Java에서 모든 Bitwise 연산자를 구현하는 프로그램

자바
import java.util.Scanner; public class BitwiseOperators {  public static void main(String[] args)   Scanner input = new Scanner(System.in);  System.out.print('Enter first number: ');  int num1 = input.nextInt();  System.out.print('Enter second number: ');  int num2 = input.nextInt();  System.out.println('Bitwise AND: ' + (num1 & num2));  System.out.println('Bitwise OR: ' + (num1  }>

입력

Enter first number: 4 Enter second number: 8>

산출

Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>

설명

이 프로그램은 사용자에게 num1과 num2라는 두 숫자를 입력하라는 메시지를 표시합니다. 그런 다음 &, |, ^, ~, <> 및>>> 연산자를 사용하여 다음 비트 단위 연산을 수행합니다.

비트별 AND
비트별 OR
비트별 XOR
비트별 NOT
비트 왼쪽 시프트
비트 오른쪽 시프트
비트별 0 채우기 오른쪽 시프트

장점

Java에서 비트 연산자를 사용하면 다음과 같은 이점이 있습니다.

자바 스위치 문
  1. 속도: 비트 연산은 숫자의 이진 표현에 대해 직접 연산을 수행하므로 산술 연산보다 훨씬 빠릅니다.
  2. 공간 최적화: 비트 연산은 단일 변수에 여러 값을 저장하는 데 사용할 수 있으며, 이는 제한된 메모리로 작업할 때 유용할 수 있습니다.
  3. 비트 조작: 비트 연산자를 사용하면 숫자의 개별 비트를 정밀하게 제어할 수 있으며 이는 암호화, 오류 감지 및 압축과 같은 다양한 응용 프로그램에 유용할 수 있습니다.
  4. 코드 단순화 : 비트 연산은 특정 작업을 수행하는 데 필요한 조건문과 루프의 수를 줄여 코드를 단순화할 수 있습니다.

요약하자면, Bitwise Operators는 Java 애플리케이션의 성능 최적화, 코드 가독성 향상, 코드 복잡성 감소를 위한 중요한 도구입니다.