10->2진수 변환 코드 작성중..char 형을 입력했는데 출력을 char 형으로 할 때 깨집니다.
왠만하면 혼자서 해보려고 낑낑댔는데 이부분은 잘 모르겠습니다 ㅠ
10진수에서 2진수로 변환하는 코드인데요..뭐 초보인만큼 음수 변환은 일단 보류...
양수만 진행하는 상태입니다. 2진수 변환까지는 제대로 나오는데, 표준출력부분에서
char 타입으로 출력하면 문자가 깨져서 출력됩니다. int 형으로 출력했을 땐 2진수까진
제대로 나오지만 쓸데없는 부분이 붙어서 출력되더군요...배열에 저장한 값을 출력한거고
배열도 char 타입이니 별 문제 없을거라 생각했는데 왜이러는지 모르겠습니다 ㅠ
지도편달 부탁드립니다~!
//---------------------------------------------------------------------------
//15장 도전2
#include
#include
int trans_binary(int *a, char b[]);
void ReverseIndex(char *InNum, int *ArSize, char a[]);
//------------------------------------------------------------------------------
int main()
{
int i, Num;
char TheRest[50];
int Array_Size = 0;
printf("숫자를 입력하세요 : ");
scanf("%d", &Num);
Array_Size = trans_binary(&Num, TheRest);
printf("배열의 크기는 %d 입니다. ", Array_Size);
ReverseIndex(&Num, &Array_Size, TheRest);
system("pause");
return 0;
}
//------------------------------------------------------------------------------
int trans_binary(int *a, char b[])
{
int i, ArraySize;
char temp = *a;
for(i=0; temp != 0; i++)
{
b[i] = temp%2;
temp /= 2;
}
ArraySize = i+1;
return ArraySize;
// ReverseIndex(, &ArraySize, b);
}
//------------------------------------------------------------------------------
void ReverseIndex(char *InNum, int *ArSize, char a[])
{
int i;
char buf;
int Size = *ArSize;
for(i=0; i<(Size/2); i++)
{
buf
= a[i];
a[i] = a[Size-i-1];
a[Size-i-1] = buf;
}
printf("입력한 수 %d 의 2진수 값은 ", *InNum);
for(i=0; i
printf("%d", a[i]);
}
//------------------------------------------------------------------------------
첨부 | 파일 크기 |
---|---|
binary.txt | 1.38 KB |
잘렸네요 ㅠ 잘린부분은 이렇습니다.
for(i=0; i<Size; i++) printf(”%d”, a[i]);
}
//———————————————————————————————————————
프로그래밍 옹알이 시작중.
아..이런 혼자서 북치고 장구치네요 ㅠ ㅋ 해결했습니다ㅠ ㅋ
해결했네요 ㅠ 사이즈에 +1한게 문제였어요...민망합니다 ㅠ ㅋ
프로그래밍 옹알이 시작중.
댓글 달기