Maison  >  Article  >  développement back-end  >  Trouver le complément à 2 d'un nombre binaire donné en utilisant C

Trouver le complément à 2 d'un nombre binaire donné en utilisant C

PHPz
PHPzavant
2023-09-05 15:21:061174parcourir

Trouver le complément à 2 dun nombre binaire donné en utilisant C

Considérez l'exemple ci-dessous -

Exemple

L'entrée est la suivante :

Nombre binaire d'entrée : 10010001

La sortie est la suivante :

Complément à 1 de 10010001 est 0110111 0

2 vs 10010001 Le complément de est 01101111

Algorithme

Référez-vous à un algorithme pour trouver le complément 2'c d'un nombre binaire donné.

Étape 1 – Commencer.

Étape 2 - Lisez le nombre binaire au moment de l'exécution.

Étape 3 - Copiez le nombre binaire dans strdp.

Étape 4 - len: = strlen(str)

Étape 5 - Pour i = 0 à len-1, exécutez

Étape 5.1 - Si str[i] == '1' alors

Étape 5.1.1 - str [i] == '0'

Étape 5.2 - Sinon

Étape 5.2.1 - str[i] == '1'

Étape 5.3 - i: = i+1

Étape 5.3 - i: = i +1

p>

Étape 6 - Masque : = 1

Étape 7 - Pour i : = len-1 à 0 faire

Étape 7.1 - Si masque == 1 alors p>

Étape 7.1 .1 − Si str[ i] == '1' puis

            Étape 7.1.1.1 − str[i]: = '0'

                Étape 7.1.1.2 − masque : = 1

        Étape 7.1.2 − else

Étape 7.1.2.1 - str[i]: = '1'

Étape 7.1.2.2 - Masque : = 0

Étape 7.1.3 - Fin de if

Étape 7.2 - Fin de if

Étape 8 - Imprimer le complément de 2.

Étape 9 – Arrêtez.

Programme

Ce qui suit est un programme C pour trouver le complément 2'c d'un nombre binaire donné -

Démonstration en direct

#include <string.h>
#include<stdio.h>
main(){
   char str[32],strdp[32];
   int mask,i;
   printf("Enter a binary number:");
   scanf("%s",str);
   strcpy(strdp,str);
   for(i=0;i<strlen(str);i++) /* computing 1&#39;s complement */{
      if(str[i]==&#39;1&#39;)
         str[i]=&#39;0&#39;;
      else
         str[i]=&#39;1&#39;;
   }
   printf("1\&#39;s complement of %s is %s</p><p>",strdp,str);
   mask=1;
   for(i=strlen(str)-1;i>=0;i--){
      if(mask==1){
         if(str[i]==&#39;1&#39;){
            str[i]=&#39;0&#39;;
            mask=1;
         }
         else{
            str[i]=&#39;1&#39;;
            mask=0;
         }
      }
   }
   printf("2\&#39;s complement of %s is %s",strdp,str);
}

Sortie

Lorsque le programme ci-dessus est exécuté, les résultats suivants sont produits -

Enter a binary number:11001110
1&#39;s complement of 11001110 is 00110001
2&#39;s complement of 11001110 is 00110010

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