2진수 함수를 가지고 16진수 출력하는데 값이 이상해서요.
봄나
2023.04.01
질문 제목 : 2진수 함수를 가지고 16진수를 출력하려고하는데 값이 6자리로 나와서요. 질문 내용 : int binaryn(int *binary)
{
int result =0;
int noneval =0;
int ntemp =1;
int i,n = 0;
n = rand()%256;
for(i=0; n0;i++)
{
binary[i] = n%2;
n = n/2;
noneval = binary[i];
result = result+ (noneval * ntemp);
ntemp = ntemp * 10;
}
return result;
}2진수 함수 입니다.
그리고 메인문에
#include stdio.h
void main()
{
for(i =0; i20; i++)
{
printf(%d ] , i+1);
printf(%x\n, binaryn(binary));
}
}이렇게 하면 정상 출력이 될줄알았는데..
출력하면
1 ] 49fa7a
..
..
..
..
20 ] 5f7a31이런식으로 6자리가 나오네요...
왜그런건지 이유을 알고싶어요..
-
BlackCat
소스 코드에 사소한 실수가 있습니다.
nTemp = nTemp * 10; 를 nTemp = nTemp * 2; 로 고쳐야 합니다.
2진수를 계산하는 것이기 때문에 10을 곱하면 엉뚱한 결과가 나오겠죠.^^