이 섹션에서는 c 프로그래밍 언어의 비트 단위 시프트 연산자에 대해 설명합니다. 비트 시프트 연산자는 프로그램 요구 사항에 따라 이진 비트를 왼쪽 방향 또는 오른쪽 방향으로 이동하는 데 사용됩니다.
시프트 연산자는 비트의 시프트 위치에 따라 두 가지 유형으로 분류됩니다.
- 왼쪽 시프트 연산자
- 오른쪽 시프트 연산자
왼쪽 시프트 연산자
왼쪽 시프트 연산자는 이진 비트에 대한 연산을 수행하는 비트 단위 시프트 연산자의 한 유형입니다. 비트의 위치를 왼쪽으로 이동 또는 이동시키고, 비트를 이동한 후 오른쪽에 생성된 빈 공간에 0을 추가하려면 두 개의 피연산자가 필요한 이항 연산자입니다.
통사론
var_name << no_of_position
위 구문에서 var_name은 왼쪽 시프트(<<) operation is to be performed shift the binary bits at left side. and no_of_position variable represents number of placed or shifted in other words, operator shifts first operand on side by defined second operand.< p>
예를 들어, 정수 변수 num의 값은 22이고 이진 형식은 10110입니다. 이제 왼쪽 시프트 연산자를 사용하여 이진 비트 2를 이동합니다. num = num << 2는 num = num * (2와 같습니다. ^2). 그리고 num의 새 값은 22* (2 ^ 2) = 88이며 이는 이진 형식 1011000과 같습니다.
예제 1: C에서 왼쪽 Shift 연산자 사용을 보여 주는 프로그램
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use left shift operator to shift the bits num = (num << 2); // It shifts two bits at the left side printf (' After shifting the binary bits to the left side. '); printf (' The new value of the variable num = %d', num); return 0; }
산출
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
예제 2: C의 unsigned int 데이터에서 왼쪽 Shift 연산자를 사용하는 프로그램
#include int main () { // declare local variable unsigned int num = 0xff; // use left shift operator to shift the bits num = (num << 2); printf (' After shifting the binary bits to the left side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
산출
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
예제 3: 왼쪽 시프트 연산자를 수행하기 위해 사용자로부터 양수를 입력하는 프로그램
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the left side: '); scanf (' %d', &bit); // use left shift operator to shift the bits num = (num << bit); printf (' After shifting the bits to the left side. '); printf (' The new value of the num = %d', num); return 0; }
산출
Enter a positive number: 40 No. of binary bits shifted to the left side: 4 After shifting the bits to the left side. The new value of the num = 640
위의 예에서 사용자 정의 양수 40의 이진수 비트는 101000입니다. 그 후 이진수 비트를 왼쪽으로 이동하기 위해 숫자로 4를 사용합니다. 그런 다음 왼쪽 시프트 연산자는 왼쪽에서 4개의 이진 비트를 이동한 다음 오른쪽에 공간이 생성되고 오른쪽에 4개의 0이 채워지거나 추가되어 이진 값 1010000000을 반환합니다. 이는 다음과 같습니다. 십진수 640.
오른쪽 시프트 연산자
오른쪽 쉬프트 연산자는 오른쪽의 비트를 이동하는데 사용되는 비트 쉬프트 연산자의 일종으로 이중(>>) 화살표 기호로 표시된다. 왼쪽 시프트 연산자와 마찬가지로 오른쪽 시프트 연산자에도 오른쪽의 비트를 시프트한 다음 비트를 시프트한 후 왼쪽에 생성된 빈 공간에 0을 삽입하기 위해 두 개의 피연산자가 필요합니다.
통사론
var_name >> no_of_position
위 구문에서 var_name은 이진 비트를 오른쪽으로 이동하기 위해 오른쪽 시프트(>>) 연산을 수행할 정수 변수를 나타냅니다. 그리고 no_of_position 변수는 오른쪽으로 배치되거나 이동되는 비트 수를 나타냅니다. 즉, 오른쪽 시프트 연산자는 두 번째 피연산자에 대한 전체 비트 수를 정의하여 첫 번째 피연산자의 이진 비트를 오른쪽으로 이동시킵니다.
예제 1: C에서 오른쪽 Shift 연산자 사용을 보여 주는 프로그램
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use right shift operator to shift the bits num = (num >> 2); // It shifts two bits at the right side printf (' After shifting the binary bits to the right side. '); printf (' The new value of the variable num = %d', num); return 0; }
산출
팬더 반복
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
예제 2: C의 unsigned int 데이터에서 오른쪽 Shift 연산자를 사용하는 프로그램
#include int main () { // declare local variable unsigned int num = 0xff; // use right shift operator to shift the bits num = (num >> 2); printf (' After shifting the binary bits to the right side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
산출
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
예제 3: 오른쪽 시프트 연산자를 수행하기 위해 사용자로부터 양수를 입력하는 프로그램
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the right side: '); scanf (' %d', &bit); // use right shift operator to shift the bits num = (num >> bit); printf (' After using the right shift operator to shift the bits at the right side. '); printf (' New value of the num = %d', num); return 0; }
산출
Enter a positive number: 40 No. of binary bits shifted to the right side: 4 After using the right shift operator to shift the bits to the right. The new value of the num = 2
)>