π
<-

conversion binaire en c++

Discussions scientifiques et scolaires

conversion binaire en c++

Unread postby 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: Select all
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);
Last edited by Wistaro on 03 Nov 2017, 20:21, edited 1 time in total.
Reason: Topic deplacé dans la bonne section
User avatar
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 18.8%
 
Posts: 8
Joined: 14 Oct 2017, 12:53
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: conversion binaire en c++

Unread postby critor » 03 Nov 2017, 18:24

Petit bout de code à réutiliser :
Code: Select all
for(int i=0; i<8; i++)
   cout << a & (1<<i);
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.2%
 
Posts: 42004
Images: 15907
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby boruto76 » 03 Nov 2017, 22:11

"j'ai une erreur quelque part je sais c est quoi pouvez vous m'aidez svp"
Code: Select all
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);
User avatar
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 18.8%
 
Posts: 8
Joined: 14 Oct 2017, 12:53
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: conversion binaire en c++

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.2%
 
Posts: 42004
Images: 15907
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: conversion binaire en c++

Unread postby Wistaro » 04 Nov 2017, 09:56

critor wrote:
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 :)
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

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

Unread postby boruto76 » 04 Nov 2017, 22:08

(voila mon code en 3 partie)
Code: Select all
{
    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();
           }
User avatar
boruto76
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 18.8%
 
Posts: 8
Joined: 14 Oct 2017, 12:53
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Maths, physique, informatique et autre...

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1290 utilisateurs:
>1216 invités
>66 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)