Grazie delle eventuali risposte.
- Codice: Seleziona tutto
/*Scrivere i codic di due funzioni C che permettono di stampare i bit di un intero
e di copiare in un vettore di 4 char i 4 byte di un numero intero*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<limits.h>
void bit_print(int a);
char unpack (int p, int k);
int main(){
int a,j;
char *str;
str=(char*)calloc(4,sizeof(char));
printf("Inserire il valore dell'intero\n");
scanf("%d",&a);
bit_print(a);
printf("\n");
for(j=0;j<4;j++)
str[j] = unpack(a,j);
for(j=0;j<4;j++)
printf("%d",str[j]);
printf("\n");
system("pause");
return 0;
}
void bit_print(int a){
int i;
int n= sizeof(int) * CHAR_BIT;
int mask = 1<<(n-1);
for(i=1;i<=n;++i){
putchar(((a&mask)==0) ? '0' : '1');
a<<=1;
if(i%CHAR_BIT == 0 && i<n)
putchar(' ');
}}
char unpack (int p, int k){
int n = k*CHAR_BIT;
unsigned mask = 255;
mask <<=n;
return((p & mask)>> n);
}



