奇偶校验的C语言实现

发布时间:2024年01月06日
#include <stdio.h>





int* even_check(int* ,int );


int main(){ 
    int input=0,input_ref=0,output=0;
    int arr[]={3,10,11,12,15,21,23,60,70,71,91};
    int* ptr=NULL;
    int length=sizeof(arr)/sizeof(int);
    ptr=even_check(arr,length);
    for(int k=0;k<10;k++){
        printf("arr[%d]=%d ",k,arr[k]);
    }
    return 0;
}
int* even_check(int* arr,int length)
{
    for(int i=0;i<length-1;i++){  
        int count=0, input_ref=0;
        input_ref=arr[i]; 
        /*计算当前数据二进制形式有几个1*/
        while((input_ref)!=0){        
            count++;       //计算二进制共有几个1
            input_ref=input_ref&(input_ref-1);//消除最低位的1
        }
        /*数据加入校验位,此处为偶校验*/
        arr[i]=arr[i]<<1;    //向左移一位
        if((count%2)==0){    //如果二进制形式有偶数个1
            arr[i]=arr[i]+0;
        }
        else{                //如果二进制形式有奇数个1
            arr[i]=arr[i]+1;
        }
    }
return arr;}

文章来源:https://blog.csdn.net/weixin_46855342/article/details/135433594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。