Cours:TpiiChenillardDouble : Différence entre versions
Ligne 3 : | Ligne 3 : | ||
=Solution avec une boucle while= | =Solution avec une boucle while= | ||
− | + | <source lang="c"> | |
− | + | #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); | ||
+ | } | ||
+ | </source> | ||
=Solution avec boucle for= | =Solution avec boucle for= | ||
Ligne 36 : | Ligne 38 : | ||
==multiplication/division par 2== | ==multiplication/division par 2== | ||
− | + | <source lang="c"> | |
− | + | #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); | ||
+ | } | ||
+ | </source> | ||
==décalage de n bits== | ==décalage de n bits== | ||
− | + | <source lang="c"> | |
− | + | #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); | ||
+ | } | ||
+ | </source> | ||
{{RetourVers/TpII}} | {{RetourVers/TpII}} |
Version du 15 décembre 2012 à 22:57
retour vers la page des Tps II
Sommaire
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);
}