10진수를 2진수로 바꾸는것 이해가 잘 안가요
나오
10진수를 입력받아서 2진수로 출력하는 소스 인데요...제가 소스를 짜놓고도 이해가 잘 안가는 부분이 있어서요...지금 중첩 while문까지 배워서요...#include stdio.hint main()
{
int num; // 10진수 입력받을 변수 선언
int b;
int temp; // 임시기억장소
int i=0,j=8; // 반복문 변수 선언 및 초기화printf(10진수 정수 입력 : );
scanf(%d,&num);temp = num;while(i8) // 2진수 8비트 총 8개 반복문 , 0~7
{
num = temp;
j=8;
while(ji)
{
b = num%2;
num = num/2;j--;
}
i++;
printf(%d,b);
}return 0;
}////////////////////////////////////////////////////////////////////위에서 빨간색으로 표시되어있는 부분 왜 선언을 하는지 잘모르겠습니다.그리고 , temp가 무슨역할을 하는지 잘 모르겠네요..이 두개게 이해가 안가는데요.. 이것을 왜 선언하죠???
-
오빤테앵겨
제가 보기엔. temp는 임시 저장을 위한 변수로 사용하기 위해서인 듯 한데요.
제 상태에서 num이란 변수는 while 문안에서 계속 변하게 됩니다.
그런데 보통 저런식에서 원래 이진수로 변하기 전의 변수를 알기를 원하게 되죠..
4 = 100 이런식의 표기하거나 아니면 다른 함수에서 사용하기 위해서.....
그래서 원래 입력받은 num이란 변수를 temp라는 변수에 넣어서 입력한 변수를 기억하는 것이죠.
나중에 저 함수를 확장하게 된다면. 입력받은