티스토리 뷰

z10진수를 2진수를 변경하는 방법 중 가장 일반적인 방법이 10진수를 2로 0이 몫이 0이 될 때까지 나누어

남은 나머지를 거꾸로 써나가는 방법일 것 같습니다.

 

그래서 그 방법을 재귀호출을 이용해 구현해 봤습니다.

 

1
2
3
4
5
6
void dtob(int n)
{
    if(n!=1)
    dtob(n/2);
    cout << n % 2;
}
cs

 

함수는 위와 같고

위에서 말한 것과 같이 재귀호출을 이용해서 마지막 나머지부터 출력합니다.

 

- 주의 사항 -

확인은 안 해봤지만 숫자가 커지면 그 만큼 재귀호출 수도 많아 지면서 스택의 오버플로우가 발생할 수도 있을 것 같습니다!!!

 

참고

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
void dtob(int n)
{
    if (n != 1)
        dtob(n / 2);
    cout << n % 2;
}
 
void main()
{
    dtob(25);
}
cs

 

 


 #C, #C++, #알고리즘, #재귀호출, #10진수, #2진수, #변환

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday