Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 시프트 연산은 무엇입니까?

<시간/>

문제

C 언어를 사용하여 숫자의 왼쪽, 오른쪽 시프트 및 보수를 표시하는 간단한 프로그램은 무엇입니까?

해결책

왼쪽 시프트

변수의 값이 한 번 왼쪽으로 시프트되면 그 값은 2배가 됩니다.

예를 들어, a =10, a<<1 =20

C 언어의 시프트 연산은 무엇입니까?

오른쪽 시프트

변수의 값을 오른쪽으로 한 번 이동하면 그 값은 원래 값의 절반이 됩니다.

예를 들어, a =10, a>>1 =5

C 언어의 시프트 연산은 무엇입니까?

예시

다음은 시프트 연산을 위한 C 프로그램입니다 -

#include<stdio.h>
main (){
   int a=9;
   printf("Rightshift of a = %d\n",a>>1);//4//
   printf("Leftshift of a = %d\n",a<<1);//18//
   printf("Compliment of a = %d\n",~a);//-[9+1]//
   printf("Rightshift by 2 of a = %d\n",a>>2);//2//
   printf("Leftshift by 2 of a = %d\n",a<<2);//36//
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Rightshift of a = 4
Leftshift of a = 18
Compliment of a = -10
Rightshift by 2 of a = 2
Leftshift by 2 of a = 36