Maison  >  Article  >  développement back-end  >  Traduisez ce qui suit en chinois : Programme C pour convertir un nombre décimal en décimal binaire

Traduisez ce qui suit en chinois : Programme C pour convertir un nombre décimal en décimal binaire

王林
王林avant
2023-09-10 12:37:02748parcourir

Traduisez ce qui suit en chinois : Programme C pour convertir un nombre décimal en décimal binaire

Considérez l'exemple suivant pour comprendre comment convertir un décimal en décimal binaire dans le langage de programmation C.

Exemple 1 - Convertissez 25 en binaire.

Étape 1 - 25/2 Reste : 1, Quotient : 12

Étape 2 - 12/2 Reste : 0, Quotient : 6

Étape 3 - 6/2 Reste : 0, Quotient : 3

Étape 4 - 3/2 Reste : 1, Quotient : 1

Étape 5 - 1/2 Reste : 1, Quotient : 0

Donc le nombre binaire équivalent est : 11001

Exemple 2 - Convertissez 0,7 en binaire.

Étape 1 - 0,7 * 2 = 1,4, partie entière = 1

Étape 2 - 0,4 * 2 = 0,8, partie entière = 0

Étape 3 - 0,8 * 2 = 1,6, partie entière = 1

Étape 4 - 0,6 * 2 = 1,2, partie entière = 1

Étape 5 - 0,2 * 2 = 0,4, partie entière = 0

Étape 6 - 0,4 * 2 = 0,8, partie entière = 0

Par conséquent, le nombre binaire équivalent est : 0,101100

Étape 3 - Enfin, la valeur binaire du nombre décimal 25,7 est la suivante :

11001 + 0.101100 = 1101.101100

Exemple

Ce qui suit est un programme C pour convertir une fraction décimale en une décimale binaire :

Démonstration en direct

#include<stdio.h>
int main(){
   long double fraDecimal,fraBinary,bFractional = 0.0,dFractional,fraFactor=0.1;
   long int dIntegral,bIntegral=0;
   long int intFactor=1,remainder,temp,i;
   printf("Enter any fractional decimal number: ");
   scanf("%Lf",&fraDecimal);
   dIntegral = fraDecimal;
   dFractional = fraDecimal - dIntegral;
   while(dIntegral!=0){
      remainder=dIntegral%2;
      bIntegral=bIntegral+remainder*intFactor;
      dIntegral=dIntegral/2;
      intFactor=intFactor*10;
   }
   for(i=1;i<=6;i++){
      dFractional = dFractional * 2;
      temp = dFractional;
      bFractional = bFractional + fraFactor* temp;
      if(temp ==1)
         dFractional = dFractional - temp;
      fraFactor=fraFactor/10;
   }
   fraBinary = bIntegral + bFractional;
   printf("Equivalent binary value: %lf",fraBinary);
   return 0;
}

Sortie

Lors de l'exécution du programme ci-dessus Quand , les résultats suivants seront produits-

Enter any fractional decimal number: 5.7
Equivalent binary value: 101.101100

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer