Cours:TpiiChenillardDouble : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 3 : Ligne 3 :
 
=Solution avec une boucle while=
 
=Solution avec une boucle while=
  
#include "commcarte.h"
+
<source lang="c">
void printbits(unsigned char n)
+
#include "commcarte.h"
{
+
void printbits(unsigned char n)
  int i;
+
{
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
+
  int i;
}<br>
+
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
int main()
+
}
{
 
  int device;
 
  //device=openParPort("/dev/parport0");
 
  unsigned char val,val2,cpt=0;
 
  while (cpt<3)
 
  {
 
    cpt++;
 
    val=0x01;  // 0000 0001
 
    val2=0x80; // 1000 0000
 
    while (val)
 
    {
 
      //ecrireParPort(device,val|val2);
 
      printbits(val|val2);printf("\n");
 
      val=val<<1;
 
      val2=val2>>1;
 
      //usleep(100000);
 
    }
 
  }
 
  //closeParPort(device);
 
}
 
  
 +
int main()
 +
{
 +
  int device;
 +
  //device=openParPort("/dev/parport0");
 +
  unsigned char val,val2,cpt=0;
 +
  while (cpt<3)
 +
  {
 +
    cpt++;
 +
    val=0x01;  // 0000 0001
 +
    val2=0x80; // 1000 0000
 +
    while (val)
 +
    {
 +
      //ecrireParPort(device,val|val2);
 +
      printbits(val|val2);printf("\n");
 +
      val=val<<1;
 +
      val2=val2>>1;
 +
      //usleep(100000);
 +
    }
 +
  }
 +
  //closeParPort(device);
 +
}
 +
</source>
  
 
=Solution avec boucle for=
 
=Solution avec boucle for=
Ligne 36 : Ligne 38 :
 
==multiplication/division par 2==
 
==multiplication/division par 2==
  
#include "commcarte.h"
+
<source lang="c">
void printbits(unsigned char n)
+
#include "commcarte.h"
{
+
void printbits(unsigned char n)
  int i;
+
{
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
+
  int i;
}<br>
+
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
int main()
+
}
{
+
 
  int device;
+
int main()
  //device=openParPort("/dev/parport0");
+
{
  unsigned char i,j,cpt;
+
  int device;
  for (cpt=0;cpt<3;cpt++)
+
  //device=openParPort("/dev/parport0");
  {
+
  unsigned char i,j,cpt;
    j=0x80;  // 1000 0000
+
  for (cpt=0;cpt<3;cpt++)
    for (i=1;i>0;i*=2)
+
  {
    {
+
    j=0x80;  // 1000 0000
      //ecrireParPort(device,i|j);
+
    for (i=1;i>0;i*=2)
        printbits(i|j);printf("\n");
+
    {
      //usleep(100000);
+
      //ecrireParPort(device,i|j);
      j=j/2;
+
      printbits(i|j);printf("\n");
    }
+
      //usleep(100000);
  }
+
      j=j/2;
  //closeParPort(device);  
+
    }
}
+
  }
 +
  //closeParPort(device);  
 +
}
 +
</source>
  
 
==décalage de n bits==
 
==décalage de n bits==
  
#include "commcarte.h"
+
<source lang="c">
void printbits(unsigned char n)
+
#include "commcarte.h"
{
+
void printbits(unsigned char n)
  int i;
+
{
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
+
  int i;
}<br>
+
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
int main()
+
}
{
+
 
  int device;
+
int main()
  //device=openParPort("/dev/parport0");
+
{
  unsigned char i,j,cpt;
+
  int device;
  for (cpt=0;cpt<3;cpt++)
+
  //device=openParPort("/dev/parport0");
  {
+
  unsigned char i,j,cpt;
    j=7;
+
  for (cpt=0;cpt<3;cpt++)
    for (i=0;i<8;i++)
+
  {
    {
+
    j=7;
      //ecrireParPort(device,1<<i|1<<j);
+
    for (i=0;i<8;i++)
      printbits(1<<i|1<<j);printf("\n");
+
    {
      //usleep(100000);
+
      //ecrireParPort(device,1<<i|1<<j);
      j--;
+
      printbits(1<<i|1<<j);printf("\n");
    }
+
      //usleep(100000);
  }
+
      j--;
  //closeParPort(device);  
+
    }
}
+
  }
 +
  //closeParPort(device);  
 +
}
 +
</source>
  
 
{{RetourVers/TpII}}
 
{{RetourVers/TpII}}

Version du 15 décembre 2012 à 22:57

retour vers la page des Tps II

Solution avec une boucle while

#include "commcarte.h"
void printbits(unsigned char n)
{
  int i;
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
}

int main()
{
  int device;
  //device=openParPort("/dev/parport0");
  unsigned char val,val2,cpt=0;
  while (cpt<3)
  {
    cpt++;
    val=0x01;  // 0000 0001
    val2=0x80; // 1000 0000
    while (val)
    {
      //ecrireParPort(device,val|val2);
      printbits(val|val2);printf("\n");
      val=val<<1;
      val2=val2>>1;
      //usleep(100000);
    }
  }
  //closeParPort(device); 
}

Solution avec boucle for

multiplication/division par 2

#include "commcarte.h"
void printbits(unsigned char n)
{
  int i;
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
}

int main()
{
  int device;
  //device=openParPort("/dev/parport0");
  unsigned char i,j,cpt;
  for (cpt=0;cpt<3;cpt++)
  {
    j=0x80;  // 1000 0000
    for (i=1;i>0;i*=2)
    {
      //ecrireParPort(device,i|j);
       printbits(i|j);printf("\n");
      //usleep(100000);
      j=j/2;
    }
  }
  //closeParPort(device); 
}

décalage de n bits

#include "commcarte.h"
void printbits(unsigned char n)
{
  int i;
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
}

int main()
{
  int device;
  //device=openParPort("/dev/parport0");
  unsigned char i,j,cpt;
  for (cpt=0;cpt<3;cpt++)
  {
    j=7;
    for (i=0;i<8;i++)
    {
      //ecrireParPort(device,1<<i|1<<j);
      printbits(1<<i|1<<j);printf("\n");
      //usleep(100000);
      j--;
    }
  }
  //closeParPort(device); 
}

retour vers la page des Tps II