> Java > java지도 시간 > 본문

Java 오른쪽 시프트 연산자를 사용하는 방법

DDD
풀어 주다: 2023-10-12 11:30:36
원래의
1748명이 탐색했습니다.

Java 오른쪽 시프트 연산자 사용법: 1. 부호 있는 오른쪽 시프트, 이진수를 지정된 자릿수만큼 오른쪽으로 이동하고 원래 숫자의 부호 비트에 따라 왼쪽의 숫자를 채웁니다. 양수, 왼쪽에 0비트 채우기. 원래 숫자가 음수인 경우 왼쪽에 1을 채웁니다. 2. 부호 없는 오른쪽 시프트, 지정된 자릿수만큼 오른쪽으로 이진수를 이동합니다. , 원래 숫자의 부호 비트에 관계없이 왼쪽의 0 비트로 채웁니다.

Java 오른쪽 시프트 연산자를 사용하는 방법

Java의 오른쪽 시프트 연산자(>>)는 이진수를 지정된 자릿수만큼 오른쪽으로 이동하고 원래 숫자의 부호 비트에 따라 왼쪽 자릿수를 채우는 데 사용됩니다. 오른쪽 시프트 연산자는 부호 있는 오른쪽 시프트(부호 있는 오른쪽 시프트)와 부호 없는 오른쪽 시프트의 두 가지 형식으로 제공됩니다.

1. 부호 있는 오른쪽 시프트(부호 오른쪽 시프트)

부호 오른쪽 시프트 연산자는 이진수를 지정된 자릿수만큼 오른쪽으로 이동하고 원래 숫자의 부호 비트에 따라 왼쪽의 숫자를 채웁니다. 원래 숫자가 양수이면 왼쪽이 0비트로 채워지고, 원래 숫자가 음수이면 왼쪽이 1비트로 채워집니다. 부호 있는 오른쪽 시프트 연산자의 구문은 다음과 같습니다:

int result = value >> num;
로그인 후 복사

여기서 value는 이동할 이진수, num은 이동할 자릿수, result는 연산 결과입니다.

샘플 코드는 다음과 같습니다.

int num = 10; // 要移动的二进制数
int shift = 2; // 要移动的位数
int result = num >> shift; // 有符号右移运算符的计算结果
System.out.println(result); // 输出结果为2
로그인 후 복사

이 예에서는 이진수 10을 오른쪽으로 2비트 이동하여 00001010을 얻은 다음 십진수 2로 변환하면 최종 출력 결과는 2입니다.

2. 부호 없는 오른쪽 시프트

부호 없는 오른쪽 시프트 연산자는 이진수를 지정된 비트 수만큼 오른쪽으로 이동하고 원래 숫자의 부호 비트에 관계없이 왼쪽의 0비트를 채웁니다. 부호 없는 오른쪽 시프트 연산자의 구문은 다음과 같습니다:

int result = value >>> num;
로그인 후 복사

여기서 value는 이동할 이진수, num은 이동할 자릿수, result는 연산 결과입니다.

샘플 코드는 다음과 같습니다.

int num = -10; // 要移动的二进制数
int shift = 2; // 要移动的位数
int result = num >>> shift; // 无符号右移运算符的计算结果
System.out.println(result); // 输出结果为1073741821
로그인 후 복사

이 예에서는 이진수 -10을 부호 없이 2비트 오른쪽으로 시프트하여 0011111111111111111111111111110을 얻은 다음 십진수 1073741821로 변환하고 최종 출력 결과는 다음과 같습니다. 1073741821.

이동할 자릿수는 음수가 아닌 정수여야 합니다. 그렇지 않으면 예외가 발생합니다. 오른쪽 시프트 연산자를 사용할 때는 예상치 못한 연산 결과를 피하기 위해 부호 비트와 0 비트를 채우는 방법에 특별한 주의를 기울여야 합니다.

위 내용은 Java 오른쪽 시프트 연산자를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿