반응형
사용자로부터 입력받은 정수를 비트 이동시키는 프로그램을 작성하여 보자. 먼저 정수 변수의 값을 입력받은 후에 이동시킬 방향, 이동할 거리를 사용자로부터 입력받는다. 비트 이동 전후에 정수의 값을 비트로 출력하도록 한다. 앞 문제에서 작성한 display_bit() 함수를 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <stdio.h> #define GET_BIT(n,pos) ((n)>>(pos)&0x01) void display_bit(int value); int main(void) { int val, move, dist, nval; val=0;move=0;dist=0;nval=0; while(1) { printf("정수값을 입력하세요(종료 9999): "); scanf("%d", &val); if(val==9999) break; printf("왼쪽 이동은 0, 오른쪽 이동은 1을 입력하세요: "); scanf("%d", &move); printf("이동시킬 거리: "); scanf("%d", &dist); printf("이동 전: "); display_bit(val); if(move==0) { nval=(val<<dist); printf("이동 후: "); display_bit(nval); } else if(move==1) { nval=(val>>dist); printf("이동 후: "); display_bit(nval); }} return 0; } void display_bit(int value) { int i,count; count=0; for(i=31;i>=0;i--) { if(count==4) {printf(" "); count=0;} if(GET_BIT(value,i)) printf("1"); else printf("0"); count++; } printf("\n"); } | cs |
반응형