Develop

[c] 정수를 2진수로 변환 (재귀,비트연산)

by hooni posted Apr 23, 2003
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
정수를 이진수로 변환


## 재귀함수 호출에 의한 변환 ##
-------------------------------------------------------------------
#include<stdio.h>

void bin(int num){
        if(num<1) return;
        bin(num/2); 
        printf("%d", num%2);
}

void main(){
        int num;

        printf("Enter a Number : ");
        scanf("%d", &num);

        bin(num);
        printf("\n");
}
-------------------------------------------------------------------


## mask에 의한 쉬프트/비트 연산에 의한 변환 ##
-------------------------------------------------------------------
#include<stdio.h>

void main(){
        unsigned char num;
        unsigned char mask=128;
        int i;

        printf("Enter a Number : ");
        scanf("%d", &num);
        printf("%d\n", num);

        if(mask&num) printf("-");
        else printf("+");

        for(i=0; i<7; i++){
                mask = mask >> 1;
                if(mask&num) printf("1");
                else printf("0");
        }
        printf("\n");
}
-------------------------------------------------------------------