79 lines
1.5 KiB
C
79 lines
1.5 KiB
C
#include <stdio.h>
|
|
|
|
#define NC ((int)sizeof(int)*8-1)
|
|
|
|
unsigned int mi(unsigned int i){
|
|
return 1<<i;
|
|
}
|
|
|
|
void printtt(unsigned int i){
|
|
printf("%d = 0x%x = 0b",i,i);
|
|
int k=0;
|
|
while(i>>k!=0)k++;
|
|
k--;
|
|
while(k>=0){
|
|
printf("%d",((i&(1<<k))>>k));
|
|
k--;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
int main(){
|
|
for(int i=0;i<=5;i++)
|
|
printtt(mi(i));
|
|
printf("Votre nombre : ");
|
|
unsigned int n;
|
|
scanf("%d", &n);
|
|
|
|
printf("Votre nombre est ");
|
|
printtt(n);
|
|
|
|
// (a)
|
|
printf("Votre nombre est ");
|
|
printf(((n & mi(0)) == 0)?"pair":"impair");
|
|
printf("\n");
|
|
|
|
// (a')
|
|
printf("Votre nombre est ");
|
|
printf((n%2 == 0)?"pair":"impair");
|
|
printf("\n");
|
|
|
|
// (b)
|
|
printf("Votre 3e bit est ");
|
|
printf(((n & mi(3)) == 0)?"0":"1");
|
|
printf("\n");
|
|
|
|
// (c)
|
|
printf("Votre octet de poids faible est ");
|
|
printf(((n & (mi(0)|mi(1)|mi(2)|mi(3)|mi(4)|mi(5)|mi(6)|mi(7))) == 7)?"égal à 7":"différent de 7");
|
|
printf("\n");
|
|
|
|
// (c')
|
|
printf("Votre octet de poids faible est ");
|
|
printf(((n & 0xFF) == 7)?"égal à 7":"différent de 7");
|
|
printf("\n");
|
|
|
|
// (d)
|
|
printf("Votre nombre avec le bit de pos 1 à 1 est ");
|
|
printtt(n | mi(1));
|
|
|
|
// (e)
|
|
printf("Votre nombre avec le bit de pos 1 et 4 à 1 est ");
|
|
printtt(n | mi(1) | mi(4));
|
|
|
|
// (f)
|
|
printf("Votre nombre avec le bit de pos 1 et 2 à 0 est ");
|
|
printtt(n & (~(mi(1) | mi(2))));
|
|
|
|
// (g)
|
|
printf("L'octet de poids faible de votre nombre est ");
|
|
printtt(n & 0xFF);
|
|
|
|
// (h)
|
|
printf("Votre nombre en changeant la valeur du 4e bit est ");
|
|
printtt((n ^ mi(4)));
|
|
|
|
|
|
return 0;
|
|
}
|