카테고리 없음

[알고리즘]기수변환

FORHAPPy 2021. 9. 29. 16:04

기수란?

기수 :  수를 나타내는데 기초가 되는 수 

10진법의 기수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 

 

1의자리 : 9
10의자리 : 99
100의자리 : 999             까지 의 수를 나타낸다.                   

8진수의 기수: 0, 1, 2, 3, 4, 5, 6, 7

1의자리 : 7
10의자리 : 77
100의자리 : 777          까지 의 수를 나타낸다.  

 

16진수의 기수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , A, B, C, D, E, F 

 

 

 

<전위형 증가 연산자 : ++ a >

식전체를 평가 하기전에 피연산자의 값을 증가.

 

<후위형 증가 연산자 : a ++ >

식전체를 먼저 평가하고 피연산자의 값을 증가.

 

기수변환 프로그램

 

 

다음은 기수로 변환하는 함수를 나타내었다.

  1. 반환할 숫자는 정수형태이기 때문에 unsigned  형식이어야 한다.
  2. n은 n진수로의 변환을 의미한다.
  3. dchar[]는 d[]에다가 다시 정렬할 문자들의 배열이다.
  4. (변환할 수 )% (n 진수)  처럼 나머지 연산을 해서 나온 나머지 값을 dchar의 배열 인덱스를 이용하여 가져온다.
  5. 가져온 값을 d [ digit ] 에 넣어준다., digit 는 0에서 연산을 진행 할때 마다 +1을 해주는데 후위증감을 이용하여 처음 값은 배열의 0번째 값에 넣기 위해여 후위증감을 이용하였다.
  6.  계산하여 몫이 0이 되면 while  문을 빠져나간다.
  7.  배열에 재정렬된 인덱스의 길이를 반환해준다. 이는 추후 다시 순차 정렬할 때 사용 된다. 

 

for 문을 이용하여 재 정렬 해주었다.