fork download
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. char data[100], concatdata[117], src_crc[17], dest_crc[17], frame[120], divident[18];
  5. char divisor[18];
  6. char res[17] = "0000000000000000";
  7.  
  8. void crc_cal(int node)
  9. {
  10. int i, j;
  11. for (j = 17; j <= strlen(concatdata); j++)
  12. {
  13. if (divident[0] == '1')
  14. {
  15. for (i = 1; i <= 16; i++)
  16. if (divident[i] != divisor[i])
  17. divident[i - 1] = '1';
  18. else
  19. divident[i - 1] = '0';
  20. }
  21. else
  22. {
  23. for (i = 1; i <= 16; i++)
  24. divident[i - 1] = divident[i];
  25. }
  26. if (node == 0)
  27. divident[i - 1] = concatdata[j];
  28. else
  29. divident[i - 1] = frame[j];
  30. }
  31. divident[i] = '\0';
  32. printf("\ncrc is %s\n", divident);
  33. if (node == 0)
  34. {
  35. strcpy(src_crc, divident);
  36. }
  37. else
  38. strcpy(dest_crc, divident);
  39. }
  40.  
  41. int main()
  42. {
  43. int i;
  44. printf("enter the generator bits\n");
  45. gets(divisor);
  46. if (strlen(divisor) < 17 || strlen(divisor) > 17)
  47. {
  48. printf("please enter the geneartor length min of 17 bits\n");
  49. exit(0);
  50. }
  51. printf("\n At src node :\n Enter the msg to be sent :");
  52. gets(data);
  53. strcpy(concatdata, data);
  54. strcat(concatdata, "0000000000000000");
  55. for (i = 0; i <= 16; i++)
  56. divident[i] = concatdata[i];
  57. divident[i] = '\0';
  58. crc_cal(0);
  59. printf("\ndata is:\t");
  60. puts(data);
  61. printf("\n The frame transmitted is :\t");
  62. printf("\n%s%s", data, src_crc);
  63. printf("\n\t\tSOURCE NODE TRANSMITTED THE FRAME---->");
  64. printf("\n\n\n\n\t\t\tAT DESTINATION NODE\nenter the recived frame:\t");
  65. gets(frame);
  66. for (i = 0; i <= 16; i++)
  67. divident[i] = frame[i];
  68. divident[i] = '\0';
  69. crc_cal(1);
  70. if ((strcmp(dest_crc, res)) == 0)
  71. printf("\nRecived frame is error free .\n ");
  72. else
  73. printf("\nRecived frame containes one or more error ");
  74. return 1;
  75. }
  76.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
enter the generator bits
please enter the geneartor length min of 17 bits