Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그래밍을 사용하여 10진수에서 2진수로 변환

<시간/>

문제

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