문제
C 프로그래밍 언어의 함수를 사용하여 십진수를 이진수로 변환하는 방법은 무엇입니까?
해결책
이 프로그램에서 우리는 main()에서 바이너리에 대한 함수를 호출하고 있습니다. 호출된 함수가 바이너리로 실제 변환을 수행합니다.
우리가 사용하는 논리는 십진수를 이진수로 변환하는 함수라고 합니다. -
while(dno != 0){
rem = dno % 2;
bno = bno + rem * f;
f = f * 10;
dno = dno / 2;
} 마지막으로 이진수를 메인 프로그램에 반환합니다.
예시
다음은 10진수를 2진수로 변환하는 C 프로그램입니다. -
#include<stdio.h>
long tobinary(int);
int main(){
long bno;
int dno;
printf(" Enter any decimal number : ");
scanf("%d",&dno);
bno = tobinary(dno);
printf("\n The Binary value is : %ld\n\n",bno);
return 0;
}
long tobinary(int dno){
long bno=0,rem,f=1;
while(dno != 0){
rem = dno % 2;
bno = bno + rem * f;
f = f * 10;
dno = dno / 2;
}
return bno;;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
Enter any decimal number: 12 The Binary value is: 1100
이제 이진수를 십진수로 변환해 보십시오.
예시
다음은 이진수를 십진수로 변환하는 C 프로그램입니다 -
#include
#include <stdio.h>
int todecimal(long bno);
int main(){
long bno;
int dno;
printf("Enter a binary number: ");
scanf("%ld", &bno);
dno=todecimal(bno);
printf("The decimal value is:%d\n",dno);
return 0;
}
int todecimal(long bno){
int dno = 0, i = 0, rem;
while (bno != 0) {
rem = bno % 10;
bno /= 10;
dno += rem * pow(2, i);
++i;
}
return dno;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
Enter a binary number: 10011 The decimal value is:19