게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
DECIMAL - BINARY 프로그램 만들어 봤어요!
게시물ID : programmer_17424짧은주소 복사하기
작성자 : 니콜캣우먼
추천 : 3
조회수 : 463회
댓글수 : 2개
등록시간 : 2016/05/29 13:32:17

포인터 쓰지 않고 배열만으로 만들어 봤습니다.

목표는
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으로 채워주는 함수를 만들어 볼 생각. 
출처 저...
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호