Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chuyển đổi thập phân sang nhị phân bằng lập trình C

Vấn đề

Làm thế nào để chuyển đổi một số thập phân thành một số nhị phân bằng cách sử dụng hàm trong ngôn ngữ lập trình C?

Giải pháp

Trong chương trình này, chúng tôi đang gọi một hàm đến nhị phân trong hàm main (). Hàm được gọi sang nhị phân sẽ thực hiện chuyển đổi thực tế.

Logic chúng ta đang sử dụng được gọi là hàm chuyển đổi số thập phân sang số nhị phân như sau -

while(dno != 0){
   rem = dno % 2;
   bno = bno + rem * f;
   f = f * 10;
   dno = dno / 2;
}

Cuối cùng, nó trả về số nhị phân cho chương trình chính.

Ví dụ

Sau đây là chương trình C để chuyển đổi một số thập phân thành một số nhị phân -

#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;;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter any decimal number: 12
The Binary value is: 1100

Bây giờ, hãy thử chuyển đổi số nhị phân sang số thập phân.

Ví dụ

Sau đây là chương trình C để chuyển đổi số nhị phân sang số thập phân -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter a binary number: 10011
The decimal value is:19