Maison > développement back-end > C++ > le corps du texte

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

PHPz
Libérer: 2023-09-05 15:21:06
avant
1230 Les gens l'ont consulté

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);
}
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal