Итак, я понимаю бит четности, но с точки зрения моего кода я не знаю, как его реализовать. В моем классе это код, с которым мы работаем, и я не могу понять, как добавить бит четности в начало двоичного числа, когда он не хранится нигде, каждый бит просто печатается, поскольку он идет. Я надеюсь, что в этом есть смысл.Добавление бит четности в C
Вот часть моего кода:
#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 или ноль. – Jasmine
Использовать 'putchar'? Может быть, я не понимаю твое замешательство. –
О, извините, я просто понял, что прочитал это как «опустить», а не «испускать». Но теперь я понимаю ваше объяснение, поэтому спасибо за вашу помощь! – Jasmine