Page 1 - 컴퓨터구조(프로그래밍 관점에서 바라보는)도서 미리보기
P. 1

31CHAPTER 2? 컴퓨터 내부의 데이터 표현

  확인 코딩 1-1 C 언어를 이용하여 정수를 2,8,10,16진법으로 출력하는 예제    첨부한 QR 코드를 통해서
                                                    접속해서 코드를 확인해보
앞에서 배운 다양한 진법 출력을 C 언어로 구현해보자. C 언어에서는 8, 10,       자. 사이트에 접속한 후, 좌
16 진법은 포맷 문자만 지정해주면 출력되지만, 2진수로 출력하는 포맷 문           측 상단의 [edit] 링크 클릭.
자(format letter)가 없기 때문에 프로그램으로 직접 변환해서 출력했다.
                                                    여기서는 정수의 출력만 다
           프로그래밍: C 언어에서 정수를 2, 8, 10, 16진수 출력하기    룬다. 실수의 출력은 다음
                                                    절에 소개된다.
  #include <stdio.h>
                                                    C 언어에서는 숫자를 출
  int main()                                        력하는 다양한 포맷 문자
  {                                                 를 제공한다.
                                                    yy%d: 10진수(decimal)
     int value = 47;                                yy%o: 8진수(octal)
                                                    yy%x: 16진수(hexa-
     printf(“Decimal: %d \n”,value);
     printf(“Octal: %o\n”,value);                     decimal) 소문자 출력
     printf(“Hexadecimal(small): %x\n”,value);      yy%X: 16진수(hexa-
     printf(“Hexadecimal(capital): %X\n”,value);
                                                      decimal) 대문자 출력
     printf(“Binary: “);
     for (unsigned int i = 1<<31; i > 0; i = i/2)   이 부분은 숫자를 2진수
                                                    로 바꾸는 과정이다. 반
        (value & i) ? printf(“1”): printf(“0”); ??  복적으로 2진수의 모든
                                                    비트가 1인지 여부를 파
     return 0;                                      악하는 코드이다. 정수형
  }                                                 (int) 변수는 32비트이기
                                                    때문에 모든 비트가 1인지
                                                    아닌지를 검사하면서 2진
                                                    수로 출력하고 있다.

                                      결과            웹에서 확인해보기

Decimal: 47
Octal: 57
Hexadecimal(small): 2f
Hexadecimal(capital): 2F
Binary: 00000000000000000000000000101111
   1   2   3   4   5   6