奇校验、偶校验用c语言写一个代码
时间: 2024-04-13 13:28:18 浏览: 103
以下是使用C语言编写奇校验和偶校验的示例代码:
```c
#include<stdio.h>
#include<string.h>
void odd_parity(char *data) {
int count = 0;
int i;
// 统计二进制数中1的个数
for (i = 0; i < strlen(data); i++) {
if (data[i] == '1') {
count++;
}
}
// 判断校验位是0还是1
if (count % 2 == 0) {
data[strlen(data)] = '1';
} else {
data[strlen(data)] = '0';
}
}
void even_parity(char *data) {
int count = 0;
int i;
// 统计二进制数中1的个数
for (i = 0; i < strlen(data); i++) {
if (data[i] == '1') {
count++;
}
}
// 判断校验位是0还是1
if (count % 2 == 0) {
data[strlen(data)] = '0';
} else {
data[strlen(data)] = '1';
}
}
int main() {
char data[100];
printf("请输入二进制数据:");
scanf("%s", data);
printf("奇校验:");
odd_parity(data);
printf("%s\n", data);
printf("偶校验:");
even_parity(data);
printf("%s\n", data);
return 0;
}
```
以上代码中,`odd_parity`函数用于实现奇校验,`even_parity`函数用于实现偶校验。这两个函数接受一个二进制字符串作为输入,并在该字符串的末尾添加一个校验位,以实现奇校验或偶校验。校验位的值取决于数据中包含的1的个数。如果1的个数是偶数,则校验位为1(奇校验),否则为0(偶校验)。
在`main`函数中,用户可以输入一个二进制数据,并依次调用`odd_parity`和`even_parity`函数进行奇校验和偶校验,并打印出校验后的结果。
注意:以上代码仅为示例,实际使用时可能需要根据具体需求进行修改和优化。
阅读全文