All pastes #47576 Raw Edit

Mine

public text v1 · immutable
#47576 ·published 2006-03-30 09:38 UTC
rendered paste body
#include <stdio.h>

view_bits(unsigned char c) {
  unsigned char bit;
  int i, j;
  printf("%d: ", c);
  for (i=0; i<8; i++) {
    bit= c<<i;
    bit= bit>>i;
    bit= bit>>7-i;
    printf("%d", bit);
  }
  printf("\n");
}


int main()
{
     char message[3];
     message[0]= 190;
     message[1]= 153;

     unsigned char byte=0;
     unsigned char bit=0;
     unsigned char i,j;
     unsigned char reg=0;
     unsigned char sjekk=0;
     unsigned int poly=19;
     unsigned int polysize= 5;

     for (i=0; i<2; i++)
     {
       byte= message[i];
       printf("byte: ");
       view_bits(byte);
       for (j=0; j<8; j++)
       {
          /* calculate bit from byte */
          bit= byte << j;
          bit= bit >> 7;

          printf("  bit: ");
          view_bits(bit);

          /* calculate reg from reg and bit */
          reg= reg << 1;
          reg |= bit;

          printf("  reg: ");
          view_bits(reg);

          sjekk= reg & 16;
          if (sjekk > 0)
          {
             reg ^= poly;
             printf("    reg-ans: ");
             view_bits(reg);
          }
       }
     }
     printf("adding last 4 bits\n\n");
     bit=0;
     for (j=0; j<4; j++)
       {
          /* calculate reg from reg and bit */
          reg= reg << 1;

          printf("  reg: ");
          view_bits(reg);

          sjekk= reg & 16;
          if (sjekk > 0)
          {
             reg ^= poly;
             printf("    reg-ans: ");
             view_bits(reg);
          }
       }
  /* add the crc to the message */
  message[3]= reg;

  return 0;
}