Secondo voi va bene?

di il
2 risposte

Secondo voi va bene?

La consegna:
Creare un programma che assegni ad una variabile m i seguenti bit :
10111011 10111011 10111011 10111011
A tal fine si effettuano assegnazioni con valori inferiori a 128.
Si verifichi che una variabile intera x messa da input abbia bit pari a 1 in corrispondenza dei bit 1 della variabile m

//10111011 10111011 10111011 10111011
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>



int main()
{
int i,x,m,p=0;
printf("Inserisci una variabile intera x:\n");
scanf("%d",&x);
m=1<<2;
m=m|1;
m=m<<2;
m=m|3;
m=m<<3;
m=m|3; //primo gruppo di 8 bit allora 10111011

p=m;
m=m<<8; //secondo gruppo
m=m|p;

m=m<<8; //terzo
m=m|p;

m=m<<8; //quarto
m=m|p;

x=x|m;
x= x<< 31;
for(i=0;i<32;i++) //stampa
{

if((x&m)==0)
{
printf("0");
}
else
printf("1");
if((i+1)%8==0)
{
printf(" ");
}
m=m<<1;
}
return 0;
}

2 Risposte

  • Re: Secondo voi va bene?

    
    #include <stdio.h>
    
    int main (void) {
        int m = 0b10111011101110111011101110111011;
        int x;  
        printf("m = %d\n", m);    
        printf("Inserisci una variabile intera x:\n");
        scanf(" %d", &x);
        if(x ^ m)
            printf("x e' diversa da m\n");          
        else
            printf("x e' uguale a m\n");       
        if(!((x & m) ^ m))
            printf("x ha tutti i bit uguali a 1 in corrispondenza dei bit uguali a 1 di m\n");          
        else
            printf("x non ha tutti i bit uguali a 1 in corrispondenza dei bit uguali a 1 di m\n");       
     
        return 0;
    }
    
  • Re: Secondo voi va bene?

    L’esercizio non chiede se hanno bit diversi vuole che qualsiasi intero venga inserito sia uguale alla maschera
    Comunque grazie lo stesso
Devi accedere o registrarti per scrivere nel forum
2 risposte