포인터 쓰지 않고 배열만으로 만들어 봤습니다.
목표는
8을 입력시 1000
17을 입력시, 1 0001
이렇게 4칸씩 잘라주는 코드
#include<stdio.h>
int main(){
int tenten[64]; //망할 무조건 크기를 지정 해야 한다.
int bi[64];
int i=0;
int j=0;
int b=0; //4자리씩 끊기 위한 코드.
int bp; //앞자리 끊기
printf("Put your Decimal number. \n");
scanf("%d",&tenten[i]);
for(i=0;i<=j;i++){
bi[i]=tenten[i]%2;
tenten[i+1]=tenten[i]/2;
if(!(tenten[i+1]==0)) //tenten 에 남은 수가 있을때 까진 j++함.
j++;
}
bp=(j+1)%4; //j+1 인 이유는 잘 모르겠음. 연산 착오일 수도 있음.
b+=(4-bp); //표현될 마지막 공백을 앞으로 끌어주기 위한 코드. 1110 11 이 11 1011 로 됨.
if(b==4)
b=0; // 솔직히 이 부분 조금 효율적이지 못함. 만약, 자릿수가 딱 맞을 시 띄우는걸 무시하자는 취지에서 한 것인데, 더 좋은 방법이 있을 듯.
for(;j>=0;j--){ //초기조건이 필요 없음.
if (b>3){ //4자리씩 계산
printf(" ");
b=0;
}
printf("%d",bi[j]);
b++;
}
return 0;
}
// 성공 했다. 다음번에는 앞자리를 띄어주는 함수 대신, 0으로 채워주는 함수를 만들어 볼 생각.