Si può fare?

di il
20 risposte

20 Risposte - Pagina 2

  • Re: Si può fare?

    #include <iostream>
    
    int main()
    {
    	int a = 0x648;
    	
    	int b = a & 0xC000;
    	int c = a & 0x3000;
    	int d = a & 0x0C00;
    	int e = a & 0x0300;
    	int f = a & 0x00c0;
    	int g = a & 0x0030;
    	int h = a & 0x000c;
    	int i = a & 0x0003;
    
    	int result = b | (f << 6) | (c >> 2) | (g << 4) | (d >> 4) | (h << 2) | (e >> 6) | i;
    	return result;
    }
    Stesso codice del predecessore.
  • Re: Si può fare?

    Oppure (ovviamente è uguale ...)
    
    	unsigned short int prima = 0x600;
    	unsigned short int dopo;
    
    	dopo = prima & 0xC003;
    	dopo |= ((prima & 0xC0) << 6) | ((prima & 0x3000) >> 2) | ((prima & 0x30) << 4) | ((prima & 0xC00) >> 4) | ((prima & 0x0C) << 2) | ((prima & 0x300) >> 6);		
    
    	printf("%04X\n", dopo);
    
  • Re: Si può fare?

    Siccome si fa accenno ad un PIC mi sembra quasi che si tratti una modifica necessaria per risolvere un errore nella disposizione degli I/O di una scheda elettronica
  • Re: Si può fare?

    Mah ... chissà ... magari ha a che fare con un motore passo passo ...
  • Re: Si può fare?

    Scusate non mi ero accorto che c'era già una seconda pagina..

    candaluar ha scritto:


    Siccome si fa accenno ad un PIC mi sembra quasi che si tratti una modifica necessaria per risolvere un errore nella disposizione degli I/O di una scheda elettronica
    Esatto
  • Re: Si può fare?

    skynet ha scritto:


    #include <iostream>
    
    int main()
    {
    	int a = 0x648;
    	
    	int b = a & 0xC000;
    	int c = a & 0x3000;
    	int d = a & 0x0C00;
    	int e = a & 0x0300;
    	int f = a & 0x00c0;
    	int g = a & 0x0030;
    	int h = a & 0x000c;
    	int i = a & 0x0003;
    
    	int result = b | (f << 6) | (c >> 2) | (g << 4) | (d >> 4) | (h << 2) | (e >> 6) | i;
    	return result;
    }
    Stesso codice del predecessore.
    Ci ho messo un po' a capire ogni singolo passaggio di questo codice, ma alla fine ce l'ho fatta.
    Grazie a tutti
Devi accedere o registrarti per scrivere nel forum
20 risposte