우선, 세 가지 유형의 시프트 연산자가 있으며, 해당 조작 유형은 바이트/짧은/char/int 및 long의 5 가지 유형 만 지원합니다.
<< 왼쪽 시프트 연산자, 즉 왼쪽의 피연산자의 이진 데이터를 왼쪽으로 왼쪽으로 이동하는 것을 의미합니다. 시프트 후 비트가 0으로 채워지고 초과 비트가 폐기됩니다. (곱하기의 N 전력에 해당 2)
>> Right Shift 연산자, 이진 데이터가 오른쪽으로 비트가 움직입니다. 이진 데이터 후 몇 비트를 지우십니까? (여기서 설정하는 것은 꽤 좋지만 이렇게 이해합니다) (N Power 2의 N Power와 동일합니다)
>>> 서명되지 않은 우측 시프트 연산자는 시프트 전 가장 높은 비트가 0 또는 1인지 여부에 관계없이 오른쪽 시프트 후 왼쪽에 생성 된 빈 비트가 0으로 채워집니다.
데모를 사용하여 이해를 돕습니다.
public static void main (String [] args) {int a = 16; int b = a << 2; // 왼쪽으로 2, 1 16 * 2의 전력과 동일합니다. 즉, 16 * 4 int c = a >> 2; // 2의 전력, 16/2의 전력, 즉 16/4 System.out.println ( "A의 이진 데이터는 :" + inter.tobinarystring (a)); System.out.println ( "A의 이진 데이터는" + integer.tobinarystring (b)); System.out.println ( "A의 이진 데이터는" + integer.tobinarystring (b)); System.out.println ( "A의 이진 데이터는 다음과 같습니다." + integer.tobinarystring (c)); System.out.println ( "왼쪽으로 이동 한 후 A의 값은 다음과 같습니다." + B); System.out.println ( "오른쪽으로 이동 한 후 A의 값은 다음과 같습니다." + C); }}그림과 같이 실행중인 결과를 확인하십시오.
첫째, 16의 이진 데이터는 : 10000;
두 개의 비트를 왼쪽으로 움직이면 10000은 1000000이됩니다.
두 자리를 오른쪽으로 이동하면 10000은 100이됩니다.
획득 된 이진 데이터를 일반 데이터로 변환 한 후
왼쪽 시프트 이후의 값은 64이며, 이는 2 (16 * 4)의 전력에 16 * 2입니다.
오른쪽 이동 후 값은 4이며, 이는 2 (16/4)의 전력에 16/2입니다.
이 데모를 읽은 후 Shift 연산자를 이해하는 것이 훨씬 쉽습니까?
Java의 위의 데모 및 시프트 연산자 (권장)의 요약은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.