π
<-
Chat plein-écran
[^]

conversion binaire en c++

Discussions scientifiques et scolaires

conversion binaire en c++

Message non lude boruto76 » 03 Nov 2017, 17:35

Bonjour, pouvez vous m'aider svp ,j'ai un exo difficile et je ne sais vraiment ce que c 'est la technique de masquage.
voila l exo
Ecrire la méthode conversionBinaire( ) qui saisit un entier et affiche l’entier en binaire sur 8 bits. On utilise les décalages bit à bit et la technique de masquage.
Afficher la variable char code lorsqu’elle vaut 0, 2, 127, -2, -128.


voila mon c++
Code: Tout sélectionner
int a;int b;int d;int e;int f=128;
    unsigned char c;
    c = a,b,d,e,f;
    a=0;b=2;d=127;e=-127;f=128
    do
    {
      cout << "lire le variable en entier sur 8 bits:"<<a<<endl;
      cin<<a;
      cout << "voici son variables:"<<endl;
    }while(a);
Dernière édition par Wistaro le 03 Nov 2017, 20:21, édité 1 fois.
Raison: Topic deplacé dans la bonne section
Avatar de l’utilisateur
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 18.8%
 
Messages: 8
Inscription: 14 Oct 2017, 12:53
Genre: Non spécifié

En ligne

Re: conversion binaire en c++

Message non lude critor » 03 Nov 2017, 18:24

Petit bout de code à réutiliser :
Code: Tout sélectionner
for(int i=0; i<8; i++)
   cout << a & (1<<i);
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 59.8%
 
Messages: 27823
Images: 6429
Inscription: 25 Oct 2008, 00:00
Localisation: Aix-Marseille
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: conversion binaire en c++(il me manque un truc)

Message non lude boruto76 » 03 Nov 2017, 22:11

"j'ai une erreur quelque part je sais c est quoi pouvez vous m'aidez svp"
Code: Tout sélectionner
int nombre, cpt=7;int i;unsigned a;
       system("cls");
       do
       {
        printf("Entrer nombre : ");
        scanf("%d",&nombre);
       }
       while(nombre>255);

       while (cpt>=0)
       {
        if (nombre >= pow(2,cpt))
            {
            printf("1");
                nombre-=pow(2,cpt);
        }
        else    printf("0");

        cpt--;
       }
       for(i=0; i<8; i++)
       cout << a & (1<<i);
Avatar de l’utilisateur
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 18.8%
 
Messages: 8
Inscription: 14 Oct 2017, 12:53
Genre: Non spécifié

En ligne

Re: conversion binaire en c++

Message non lude critor » 03 Nov 2017, 22:21

Déjà, je ne comprends pas ton code.
Ou tu utilises pow(), ou tu utilises l'opérateur de décalage de bit << comme demandé dans l'énoncé.

Tu peux remplacer tous les pow(2,cpt) par des 1<<cpt.
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 59.8%
 
Messages: 27823
Images: 6429
Inscription: 25 Oct 2008, 00:00
Localisation: Aix-Marseille
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: conversion binaire en c++

Message non lude Wistaro » 04 Nov 2017, 09:56

critor a écrit:
Tu peux remplacer tous les pow(2,cpt) par des 1<<cpt.


Je précise quand-même, mais c'est possible ça parce-que :

00000001 =
$mathjax$2^{0}$mathjax$

00000010 =
$mathjax$2^{1}$mathjax$

00000100 =
$mathjax$2^{2}$mathjax$

00001000 =
$mathjax$2^{3}$mathjax$

...

Et
1<<0 = 00000001
1<<1 = 00000010
1<<2 = 00000100
...

Avec ça tu ne devrais pas avoir de difficultés :)
Avatar de l’utilisateur
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 33.8%
 
Messages: 2374
Images: 25
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
Classe: Etudiant ingénieur (Ex TS - SI)
YouTube: Wistaro
Twitter: @Wistaro
GitHub: Wistaro

Re: conversion binaire en c++(code en 3 partie)

Message non lude boruto76 » 04 Nov 2017, 22:08

(voila mon code en 3 partie)
Code: Tout sélectionner
{
    int nombre; int cpt=7;typedef unsigned long u32;

           system("cls");
           do
           {
            printf("Entrer nombre : ");
            scanf("%d",&nombre);
           }
           while(nombre>255);
           while (cpt>=0)
           {
            if (nombre >= (1<<0))
                {
                printf("1");
                    nombre-=(1<<0);
            }
            else    printf("0");

            cpt--;
           } while(nombre>255);

           while (cpt>=0)
           {
            if (nombre >= (1<<2))
                {
                printf("1");
                    nombre-=(1<<2);
            }
            else    printf("0");

            cpt--;
           }  while(nombre>255);

           while (cpt>=0)
            cout<<"\n"<<endl;
           {
            if (nombre >= (2<<3))
                {
                printf("1");
                    nombre-=(2<<3);
            }
            else    printf("0");

            cpt--;
           }  while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (3<<4))
              {
                 printf("1");
                     nombre-=(3<<4);
             }
             else    printf("0");

             cpt--;
            }  while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (5<<4))
              {
                 printf("1");
                     nombre-=(5<<4);
             }
             else    printf("0");

             cpt--;
            }while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (6<<5))
              {
                 printf("1");
                     nombre-=(6<<5);
             }
             else    printf("0");

             cpt--;
            }while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (6<<5))
              {
                 printf("1");
                     nombre-=(6<<5);
             }
             else    printf("0");

             cpt--;
            }while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (7<<6))
              {
                 printf("1");
                 nombre-=(7<<6);
             }
             else    printf("0");

             cpt--;
            }while(nombre>255);

           while (cpt>=0)
             cout<<"\n"<<endl;
           {
           if (nombre >= (8<<7))
              {
                 printf("1");
                     nombre-=(5<<4);
             }
             else    printf("0");

             cpt--;
            }while(nombre>255);

           while (cpt>=0)
           {
           if (nombre >= (9<<8))
              {
                 printf("1");
                     nombre-=(9<<8);
             }
             else    printf("0");
           cpt--;
            }
           cout<<"\n"<<endl;
           u32        nValDec = 2147483648;
           u32        nMask = 1;
           u32        nIdx = 0;
           char        pStrBin[33];            // < Chaîne résultat.

           for (nIdx = 0; nIdx < 32; nIdx++, nMask <<= 1)
           {
             pStrBin[sizeof(pStrBin) - 2 - nIdx] = ((nValDec & nMask) ? '1' : '0');
           }
           pStrBin[sizeof(pStrBin) - 1] = 0;

           printf("Résultat: %d en binaire = %s\n", (int)nValDec, pStrBin);

           getchar();
           cout<<"\n"<<endl;
           {
               unsigned int n;
               unsigned long long I=0x100000000;

               printf("Entrer n:");
               scanf("%d",&n);

               unsigned int i = 0;
               for(;(n&I)?0:1;i++,I/=2);

               for(;i < (sizeof(n)*8);i++,I/=2)
                       printf("%d",(n&I)?1:0);

               printf("\n");
               getchar();
               getchar();
           }
Avatar de l’utilisateur
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 18.8%
 
Messages: 8
Inscription: 14 Oct 2017, 12:53
Genre: Non spécifié


Retourner vers Maths, physique, informatique et autre...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

-
Rechercher
-
Sujets à la une
"NumWorks++": Challenge de modification matérielle pour rajouter une puce de mémoire Flash !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
Transforme ta TI-Nspire CX en console Game Boy Advance!
12345
-
Donations/Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
PayPal : paiement en ligne sécurisé - secure online payments
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
223 utilisateurs:
>202 invités
>15 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)