본문 바로가기
자료구조

[자료구조] 진법변환

by 드린 2016. 5. 5.

목차

    반응형

    안녕하세요? White Smile입니다.

    오늘은 진법변환에 대해서 알아보겠습니다.
    이 진법 변환은 수학시간에 많이 배웠던걸로 기억하는데요.
    그때의 기억을 살려서 다시 차근 차근 알아보도록 하겠습니다.

    10진법 -> n(2,8,16)진법
    10진수를 2, 또는 8이나 16으로 나누어 각각의 나머지를 최근에 나누어진 나머지부터 높은 자리수로 선택하여 환산한 값을 사용합니다.
    쉽게 말해서 n진법으로 표현하고자 할경우 n으로 나누었을때 나오는 나머지들을 거꾸로 나열한 것을 소수점이상의 진법 변환이라고합니다.
    8로 예를 들자면 %는 나머지를 말합니다.
    8%2=0, 4%2=0, 2%2=0 1%2=1
    이 숫자들을 거꾸로 나열하면 1000 즉, 2진수로 8이되는 것이죠.

    그럼 이제 소수점 이하의 유효숫자를 구해야겠지요?
    이 소수점 이하의 유효숫자들은 10진수를 2 또는 8이나 16으로 곱하여 처음에 계산된 정수 부분부터 높은 자리수로 선택하여 환산된 값을 사용합니다.
    이때 피승수는 정수부를 제외한 소수점이하 유효수를 승수인 2 또는 8이나 16으로 곱하는 반복실행합니다.
    어떤 숫자의 경우에는 아무리 나누어도 끝이 보이지 않는 숫자들도 있지요.
    이런 숫자들은 나눗셈을 처음 배웠을때처럼 ....으로 표시해주시면 됩니다.
    0.86*8=6.88, 0.88*8=7.04, 0.04*8=0.32, 0.32*8=2.56, 0.56*8=4.48
    곱했을때 소수점위로 올라간숫자는 그때 그때 빼줍니다.
    0.67024.... 이렇게 되는 겁니다.

    n(2,8,16)진법 -> 10진법
    이 환산방법은 2진수나 8,16진수의 값의 크기를 확인하는 방법으로, 이방법은 우리가 인식할수있는 10진수의 값으로 환산하는 것임을 알수있습니다.
    소수점이상의 수는 n=0부터 시작하고 소수점이하의 수는 n=-1부터 시작하여 해당진수의 n제곱하면 10진법으로 변환가능합니다.
    예를 들어서 A7B2.C116 을 10진법으로 바꾸어 보겠습니다.
    먼저 정수부분 변환
    A7B216  = 10 x 163 + 7 x 162 + 11 x 161 + 2 x 160
                       = 10 x 4096 + 7 x 256 + 11 x 16 + 2 x 1
                  = 40960 + 1792 + 176 + 2
                  =4293010
    다음 소수부분 변환
    .C116     =12 x 16-1 + 1 x 16-2
                  =12 x 1/16+ 1 x 1/162
                  =12 x 0.0625 + 1 x 0.0039
                  =0.75 + 0.0039
                  = 0.753910
    정수부+소수부
    42930+0.7539 = 42930.7539

    2진법<->8,16진법
    이 진법변환부분이 가장쉽습니다.
    8진수로 변환할때는 3비트 16진수를 변환할때는 4비트씩 끊어서 구하면됩니다.
    예를 들어서 설명해드리지요.
    110.0102
    정수부 1 x 4 + 1 x 2 + 0 x 1=68
    실수부 0 x 4 + 1 x 2 + 0 x 1 =28
    즉, 6.28이 되는 것이지요.
    8,16진수 -> 2진수는 해당 식을 반대로 하시면 됩니다.

    이상 진법변환에 대해서 알아보았습니다.


    2016/05/05 - [자료구조] - [자료구조] 내부 표현방법


    2016/05/05 - [자료구조] - [자료구조] 체크디지트(Check digit)


    2016/05/05 - [자료구조] - [자료구조] 오류의 검출


    반응형

    '자료구조' 카테고리의 다른 글

    [자료구조] 내부 표현방법  (0) 2016.05.05
    [자료구조] 체크디지트(Check digit)  (1) 2016.05.05
    [자료구조] 오류의 검출  (0) 2016.05.05
    [자료구조] 작성오류의 종류  (0) 2016.05.05
    [자료구조] 코드의 종류  (0) 2016.05.05