문제
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