gpt4 book ai didi

c - 在C中添加奇偶校验位

转载 作者:行者123 更新时间:2023-11-30 15:04:49 29 4
gpt4 key购买 nike

我了解奇偶校验位,但就我的代码而言,我不知道如何实现它。在我的类里面,这是我们正在使用的代码,当二进制数没有存储在任何地方时,我似乎无法弄清楚如何将奇偶校验位添加到二进制数的开头。每个位都会被打印出来。

这是我的代码的一部分:

#include <stdio.h>
#define BITS 2

int main(void)
{
int choice;
char ch;
int asciiChar;
char end;
int in;

printf("What type of display do you want?\n");
printf("Enter 1 for character parity, 2 for integer checksum: ");
scanf("%d", &choice);
if(choice == 1)
{
printf("Enter a character for parity calculation: ");
scanf(" %c", &ch);

int x = ch, i;
int mask = 1 << sizeof(int) * BITS - 1;

printf("x = %d\n", x);

printf("Character: %c, ", ch);
printf("Bit representation: ");
for(i = 1; i <= sizeof(int) * BITS; i++)
{
if(x & mask)
putchar('1');
else
putchar('0');
x <<= 1;
if(!(i % 8))
{
putchar(' ');
}
}
printf("\n");
}
}

这方面有什么指导?

最佳答案

假设奇偶校验位必须使该字节有偶数个 1 位:记录打印的 1 位的数量,当总数为 BITS-1 时,检查计数是否为奇数。如果是,则发出“1”,否则发出零。

这会附加奇偶校验位,通常奇偶校验位是前置的。如果需要,请首先添加一个循环来确定奇偶校验位,打印它并执行当前的 for 循环。

关于c - 在C中添加奇偶校验位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40142275/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com