본문 바로가기
my_lesson/_C

3. C_lesson 변수 와 진수

by boolean 2013. 8. 25.
728x90

변수, 2진수, 8진수, 10진수, 16진수


compiler = Microsoft Visual C++ 6.0


/* 진수 변환*/
#include <stdio.h>
int main()
{
  int a;
  a = 127;
  printf("a의 값은 %d진수로 %o 입니다. \n",8, a);
  printf("a의 값은 %d진수로 %d 입니다. \n",10, a);
  printf("a의 값은 %d진수로 %x 입니다. \n",16, a);
  return 0;
}



code분석

2진수

-

2가지 숫자로 표시하는방법 ( 0,1)

ex)  1             1           1           1

 =     2^3*1  +   2^2*1  +  2^1*1  +  2^0*1

 =     8       +    4       +   2       +   1

 =     15(10진수)   =1111(2진수)

ex)  1             0           1            0           1

 =    2^4*1  +    2^3*0  +  2^2*1  +  2^1*0  +  2^0*1

 =    16      +    0        +  4        +  0        +  1

 =    21 (10진수)  =  10101 (2진수)

십진수

-


열가지 숫자로 표현하는 방법 (0,1,2,3,4,5,6,7,8,9)

ex) 1004 (10진수)  ==>(2진수)로 변환법

      1004/2   502  ...    0(2로 나누고 남은 나머지)

      502  /2   251  ...   0

      251  /2   125  ...   1

      125  /2    62  ...    1

      62   /2     31  ...   0

      31   /2     15  ...   1

      15   /2       7  ...   1

        7   /2       3  ...   1

        3   /2       1  ...   1

        1   /2       0  ...   1

위처럼 2로 나눈 나머지 값들을 아래에서 부터 위쪽으로 순서 정렬 해주면

1004(십진수)를 이진수로 변환하면 1111101100(2) 임을 알 수 있다

끝에(2) 는 이진수임을 나타내는 표시이다


ex)1004(10진수)  ==>(16진수)로 변환법

     1004 /16    62  ... 12(16으로 나누고 남은 나머지)

         62 /16     3  ... 14

           3 /16     0  ...  3

이것도 마찬가지로 아래부터 위쪽으로 순서 정렬해주면

3  14   12 가 되는데

아래 16진수 숫자 표를 보고 해당 숫자를 찾아 넣으면

1004(십진수)에데한 16진수는 3ECh 임을 알 수 있다

끝에 소문자 h 는 16진수임을 나타내는 표시이다

16진수 -



열여섯가지 숫자로 표현하는방법(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

ex). 3EC(십육진수) ==>십진수로 변환법

    3            E          C

=  16^2*3 +  16^1*E + 16^0*C

=  768      +  224      + 12

=  1004


ex). 3EC(십육진수) ==> 이진수로 변환법

 3

3/2 1   1

1/2 0   1                          //  11

E(14: 16진수 14번째 숫자)

14/2 7  0

7/2  3   1

3/2  1   1

1/1  0   1                        // 1110

C(12: 16진수 12번째 숫자)

12/2  6   0

6/2   3   0

3/2   1   1

1/2   0   1                       // 1100

각 십육진수 숫자를 네자리 이진수로 변환 해서 밑에서부터 각각 네개씩 묶어서

정렬한뒤

십육진수 숫자 순서대로 놓아준다

1111101100(2)

          

%o

-

8진수

%d

-

10진수

%x

-

16진수


'my_lesson > _C' 카테고리의 다른 글

6. C_lesson 별로만든 트리 program  (0) 2013.09.29
5. C_lesson 변수 선언 주의사항  (0) 2013.08.27
4. C_lesson 실수형 변수  (0) 2013.08.25
2. C_lesson 변수 & 데이터 형식  (0) 2013.08.24
1. C_lesson 시작 Hello C & Tstory  (0) 2013.07.21

댓글