Java에서 비트 연산자란 무엇입니까? 및 분류(예제 포함)

게시 됨: 2021-05-20

Java는 시장 점유율의 약 20%를 차지하는 인도에서 가장 지배적인 프로그래밍 언어 중 하나입니다 . Java의 비트 연산자는 한 번에 하나씩 독립형 비트에 대해 지정된 작업을 수행하는 기호/표기법입니다. 이진수의 개별 비트를 조작하는 데 사용되며 char, int, long, short, byte와 같은 다양한 정수 유형과 함께 사용할 수 있습니다.

Java 비트 연산자는 크게 7가지 유형으로 분류할 수 있습니다.

자바의 비트 연산자 상징 설명
비트 AND | 두 피연산자 모두에 존재하는 경우에만 결과에서 비트를 유지합니다.
비트 OR & 두 피연산자 중 하나에 존재하는 경우 비트를 유지합니다.
비트 XOR ^^ 하나의 피연산자에만 있고 둘 다에는 존재하지 않는 경우 비트를 보존합니다.
비트 보완 ~ 1의 보수라고도 합니다. 피연산자의 비트를 뒤집으면 됩니다.
비트 단위 왼쪽 시프트 << 왼쪽 피연산자의 비트는 오른쪽 피연산자에 지정된 자릿수만큼 왼쪽으로 이동합니다.
서명된 오른쪽 시프트 >> 왼쪽 피연산자의 비트는 오른쪽 피연산자에 지정된 자릿수만큼 오른쪽으로 이동합니다.
서명되지 않은 오른쪽 시프트 >>> SIGNED RIGHT SHIFT와 마찬가지로 시프트된 비트는 0으로 채워집니다.

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

목차

1. 또는 (A | B)

진리표

산출
0 0 0
0 1 1
1 0 1
1 1 1

예시

A = 1011 1110

B = 0011 0101

에이 | B = 1011 1111

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자1 = 190, 피연산자2 = 53, 출력;

// 190과 53 사이의 비트 OR

출력 = 피연산자1 | 피연산자2;

System.out.println(출력); // 프로그램은 191을 출력합니다.

}

}

2. 그리고 (A & B)

진리표

산출
0 0 0
0 1 0
1 0 0
1 1 1

예시

A = 1011 1110

B = 0011 0101

A & B = 0011 0100

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자1 = 190, 피연산자2 = 53, 출력;

// 190과 53 사이의 비트 OR

출력 = 피연산자1 | 피연산자2;

System.out.println(출력); // 프로그램은 52를 출력합니다.

}

}

  1. 포함 또는 / XOR (A ^ B)

진리표

산출
0 0 0
0 1 1
1 0 1
1 1 0

예시

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자1 = 190, 피연산자2 = 53, 출력;

// 190과 53 사이의 비트 OR

출력 = 피연산자1 | 피연산자2;

System.out.println(출력); // 프로그램은 131을 출력합니다.

}

}

3. 보완 (A ~ B)

십진법으로 숫자 A의 비트 보수는 -(A+1)입니다. 그러나 이진 영역에서 원하는 출력을 얻으려면 먼저 1의 보수를 계산한 다음 2의 보수로 변환해야 합니다.

1의 보수 - 비트를 뒤집으면 됩니다. 예를 들어:

A = 1011 1110 (190)

A의 1의 보수 = 0100 0001

A의 2의 보수 = A의 1의 보수 + 1 = 0100 0010

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자4 = 190, 출력;

// 190의 비트 보수

출력 = ~피연산자4;

System.out.println(출력); // -191을 출력

}

}

  1. 왼쪽 시프트(A << 1)

A = 1011 1110이라고 가정합니다.

A << 1 = ?

Java의 비트 연산자 는 모든 비트를 왼쪽으로 1만큼 이동합니다. 즉, 출력은 0111 1100입니다. 맨 왼쪽 비트(최상위 비트 또는 MSB)는 버리고 맨 오른쪽 빈 자리에 0이 추가됩니다( 최하위 비트 또는 LSB). 이것은 오른쪽의 모든 빈 공간에 대해 수행됩니다.

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자 = 3; // 바이너리 – 11

// 1비트 왼쪽 시프트 연산

정수 출력 = 피연산자 << 1;

System.out.println(출력); // 2를 출력

}

}

4. 서명된 오른쪽 시프트(A >>2)

Java의 비트 연산자 는 비트 패턴을 지정된 자릿수만큼 오른쪽으로 이동합니다. LSB는 폐기되고 MSB는 부호 비트로 채워집니다. 0은 양의 부호를 나타내고 1은 음의 부호를 나타냅니다.

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자 1 = 2;

정수 피연산자2 = -2;

// 2비트 부호 있는 오른쪽 시프트

System.out.println(피연산자1 >> 2); // 1을 출력

System.out.println(피연산자2 >> 2); // -1을 출력

}

}

5. 서명되지 않은 오른쪽 시프트(A >>>2)

여기서의 작업은 가장 왼쪽에 있는 비어 있는 비트가 부호 비트 대신 0으로 대체된다는 점을 제외하고는 SIGNED RIGHT SHIFT와 정확히 유사합니다.

통사론

클래스 메인 {

공개 정적 무효 메인(문자열[] 인수) {

정수 피연산자 = 240; // 이진수 – 1111 0000

// 2비트 무부호 오른쪽 시프트

System.out.println(피연산자 >>> 2); // 60을 출력

}

}

세계 최고의 대학에서 온라인으로 소프트웨어 엔지니어링 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

Java를 마스터하고 경력을 쌓고 싶으십니까? upGrad의 소프트웨어 및 기술 트랙을 확인하십시오. Full-Stack Development 의 13개월 이그제큐티브 PG 프로그램에 등록 하고 실제 프로젝트에 참여하십시오. 평판이 좋은 IIIT Bangalore와 제휴하여 16개의 프로그래밍 언어 및 도구를 배울 수 있는 기회와 3개의 면접이 보장됩니다.

비트 연산자란?

비트 연산자는 피연산자의 각 비트에 대해 연산을 수행하고 결과를 1과 0의 형태로 반환합니다. 대부분의 비트 연산자는 비트 필드를 만들고 데이터 유형의 크기를 변경하고 데이터 유형을 정렬하는 데 사용할 수 있는 다양한 마스크를 만드는 데 사용됩니다. 비트 연산자는 이진수에 대해 비트 단위 연산을 수행하는 데 사용됩니다. 비트 수준 연산에서 더 효율적으로 사용됩니다. 정수가 아닌 데이터 유형의 변수에는 비트 연산자를 사용할 수 없습니다.

Java의 비트 연산자 유형은 무엇입니까?

Java 언어에서는 산술 연산자와 별도로 비트 연산자도 사용됩니다. 비트 연산자는 몇 개뿐이지만 매우 유용할 수 있습니다. Java에는 6개의 연산자가 있습니다. Bitwise AND, Bitwise OR, Bitwise XOR, Bitwise Left Shift, Bitwise Right Shift 및 Ones Complement가 있습니다. 이러한 연산자는 정수 유형 byte, short, int, long 및 char에 적용할 수 있습니다.

자바 프로그래밍 언어의 특징은 무엇입니까?

Java는 범용 객체 지향 프로그래밍 언어입니다. Java 응용 프로그램은 일반적으로 바이트 코드로 컴파일된 다음 Java Virtual Machine에서 실행됩니다. Java는 다양한 플랫폼에서 실행되도록 설계되었습니다. 또한 분산 컴퓨팅 환경에서 사용하도록 설계되었습니다. Java 프로그래밍 언어로 작성된 프로그램을 Java 응용 프로그램 또는 Java 응용 프로그램 환경이라고 합니다. Java 프로그래밍 언어는 강력하고 유연한 언어입니다. Java 애플리케이션은 보통의 웹 애플리케이션보다 더 크고 복잡합니다. Java 프로그래밍 언어는 범용 언어입니다. 어떤 용도로든 응용 프로그램을 만드는 데 사용할 수 있습니다. 멀티스레딩, 네트워킹, 보안 및 지속성과 같은 기능으로 인해 Java는 다양한 용도에 적합합니다.