Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define BIT 32
- void controllaparita(int a);
- void stampa (int a[]);
- int dispari(int a);
- int main(){
- unsigned int num;
- printf("+==========================================+\n");
- printf("| CONTROLLO DI PARITA' |\n");
- printf("+==========================================+\n");
- while(1){
- printf("Inserire un numero (0 per terminare)");
- scanf("%d", &num);
- if(!num)
- break;
- else
- controllaparita(num);
- }
- return 0;
- }
- void controllaparita(int a){
- unsigned bin;
- int i, count, mask, array[BIT];
- mask = 1;
- mask <<= 31;
- count = 0;
- for(i = 0; i < BIT; i++){
- bin = a & mask;
- if(bin){
- count++;
- array[i] = 1;
- } else {
- array[i] = 0;
- }
- mask >>= 1;
- }
- stampa(array);
- if((count % 2) == 0){
- printf("E' di parita' PARI \n");
- } else {
- printf("E' di parita' DISPARI \n");
- int n = dispari(a);
- mask <<= 31;
- for(i = 0; i < BIT; i++){
- bin = n & mask;
- if(bin){
- array[i] = 1;
- } else {
- array[i] = 0;
- }
- mask >>= 1;
- }
- printf("correto e' %d\n", n);
- stampa(array);
- }
- }
- void stampa (int a[]){
- int i = 0;
- for(i = 0; i < BIT; i++){
- printf("%d", a[i]);
- if((i+1) % 4 == 0)
- printf(" ");
- }
- printf("\n");
- }
- int dispari(int a){
- int mask = 1;
- mask <<= 31;
- return a | mask;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement