Stampa di bit.

di il
7 risposte

Stampa di bit.

Salve a tutti , sono alle prese con questo programma che stampa una stringa di bit dal meno al piu significativo.
Mi chiedevo se fosse possibile modificare questo programma per stampare invece dal piu al meno significativo.Grazie.

#include <stdio.h>
#include <stdlib.h>
main()
{
      int i,val,mask;
      mask=1;
      val=7;
      int vect[32];
      
      for(i=0;i<32;i++)
      {
                       
                       if((val&mask)==0)
                       vect[i]=0;
                       else
                       vect[i]=1;
                       mask=mask<<1;
                       }
                       
                       for(i=0;i<32;i++)
                       {
                                       printf("%d",vect[31-i]);
                                       if(i>0&&(i+1)%8==0)
                                       printf(" ");
                                       }
                      system("pause");
                       }



7 Risposte

  • Re: Stampa di bit.

    E non hai nessuna idea ?
  • Re: Stampa di bit.

    Intendi di far decrescere gli indici nei for e fare partire il ciclo da 32?
  • Re: Stampa di bit.

    Ma perché non ti dai una spiegazione di ogni linea e istruzione come ti ho detto di fare?

    Ovviamente non hai scritto tu il codice ma cerca di capirne tutte le parti.

    Ad esempio, ti sei chiesto cosa è

    mask

    e cosa fa questa linea

    mask=mask<<1;

    ?
  • Re: Stampa di bit.

    Ultrsound non è sufficiente..
  • Re: Stampa di bit.

    Se magari, invece di attendere la manna da ultrasound, mi dai un po' retta e ti metti a capire a cosa serve mask ...
  • Re: Stampa di bit.

    daniele90 ha scritto:


    Salve a tutti , sono alle prese con questo programma che stampa una stringa di bit dal meno al piu significativo.
    Mi chiedevo se fosse possibile modificare questo programma per stampare invece dal piu al meno significativo.Grazie.
    Il trucco e' semplice:

    invece di stampare direttamente, salvi i singoli bit in un vettore, ad esempio di caratteri.

    Quindi, stampi il vettore partendo da un lato o dall'altro a seconda dell'ordinamento richiesto

  • Re: Stampa di bit.

    (soluzione banale)

    invece di scrivere

    printf("%d",vect[31-i]);

    scrivi

    printf("%d",vect);


    (soluzione un po' più interessante)

    dichiari

    unsigned int mask=1<<31;

    e poi

    mask = mask >> 1;
Devi accedere o registrarti per scrivere nel forum
7 risposte