C, C++/C

[C언어] 10, 8, 16, 2진수로 0~255값 출력하기

SeongJo 2020. 12. 11. 13:02
반응형

 

 

안녕하세요 오늘 포스팅부터는 성조라는 이름으로 포스팅할 예정입니다.

C코드 중에 예전에 0~255까지 10, 8, 16, 2 각각의 진수에 맞춰서 출력하는 프로그램 코드를 짰는데 한참 초창기에 C언어 코드를 작성하면서 정렬에 대해서 친구에게 피드백 받고 수정하고 수정해서 짰던 기억이 나서 갖고 왔습니다 ㅠ


코드

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
51
52
53
#include <stdio.h>
 
void binary(short n);
 
short main()
{
    short line = 0;
 
    printf(" DEC, OCT, HEX,  BIN");
    printf("\n");
 
    for (short i = 0; i <= 255; i++)
    {
 
        printf(" %03d", i);
        printf("  %03o", i);
        printf("  %03x ", i);
        printf("\t");
        binary(i);
 
        if (i % 5 == 0) {
            printf("\n");
        }
        else if (line == 0)
        {
            printf("\n");
        }
    }
}
 
void binary(short n)
{
    short i[8= { 0 };
    short j = 7;
 
    while (1) {
        if (n < 2)
        {
            i[j] = n % 2;
            break;
        }
        else
        {
            i[j] = n % 2;
            n = n / 2;
            j--;
        }
    }
 
    for (short k = 0; k < 8; k++) {
        printf("%d", i[k]);
    }
}
 
 

[풀이]

배열 공간을 이용한 함수로 작성해서 갖고 오는 것인데 저는 처음에 재귀함수로 작성했는데 00000000 -> 10000000 -> 01000000 순서로 앞에서부터 값이 차오르는 문제가 있었는데 위 함수처럼 뒷 번호부터 원소 값을 넣어주면 00000000 -> 00000001 -> 00000010 ...으로 진행되는 것을 알 수 있었습니다

코드를 따라서 작성하고 실행해본 후 이해해 보세요ㅎㅎ 

 

 


다음 포스팅 때 뵙겠습니다!

 

반응형