반응형

사용자로부터 입력받은 정수를 비트 이동시키는 프로그램을 작성하여 보자. 먼저 정수 변수의 값을 입력받은 후에 이동시킬 방향, 이동할 거리를 사용자로부터 입력받는다. 비트 이동 전후에 정수의 값을 비트로 출력하도록 한다. 앞 문제에서 작성한 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




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

암호화와 복호화  (0) 2017.01.16
대소문자 변경  (0) 2017.01.16
2진수 출력  (0) 2017.01.16
비트 매크로  (0) 2017.01.15
공백 세기  (0) 2017.01.14

+ Recent posts