문제
C 언어를 사용하여 숫자의 왼쪽, 오른쪽 시프트 및 보수를 표시하는 간단한 프로그램은 무엇입니까?
해결책
왼쪽 시프트
변수의 값이 한 번 왼쪽으로 시프트되면 그 값은 2배가 됩니다.
예를 들어, a =10, a<<1 =20
오른쪽 시프트
변수의 값을 오른쪽으로 한 번 이동하면 그 값은 원래 값의 절반이 됩니다.
예를 들어, a =10, a>>1 =5
예시
다음은 시프트 연산을 위한 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