Guest User

Untitled

a guest
Oct 16th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. //
  2. // Created by ajay on 10/16/17.
  3. //
  4.  
  5. #include <stdio.h>
  6. int datalen,divlen,res1[7],j,fin[7],net[7],dmp[1],rem[7];
  7.  
  8. int comp(int i, int j) {
  9. if(i == j){
  10. return 0;
  11. } else{
  12. return 1;
  13. }
  14. }
  15.  
  16. void crc(int data[],int div[]) {
  17. for(int i = 0;i < datalen - divlen + 1; i++) {
  18. if(i == 0) {
  19. for(int p = 0;p < divlen; p++) {
  20. res1[p] = data[p];
  21. }
  22. }
  23. if(res1[0] != 0) {
  24. for(int p = 0; p < divlen; p++) {
  25. net[p] = comp(res1[p], div[p]);
  26. }
  27. }
  28. if(res1[0] == 0) {
  29. for(int p = 0;p < divlen; p++) {
  30. net[p] = comp(res1[p], dmp[0]);
  31. }
  32. }
  33. fin[i] = res1[0];
  34. for(int p = 0;p < divlen - 1; p++) {
  35. rem[p] = net[p+1];
  36. }
  37. if(i != datalen + divlen - 2) {
  38. for(int p = 0;p < divlen - 1; p++) {
  39. res1[p] = rem[p];
  40. }
  41. res1[divlen - 1] = data[divlen + i];
  42. }
  43. }
  44. printf("\nquotient is :\n");
  45. for(int p = 0; p < datalen - divlen + 1; p++) {
  46. printf("%d",fin[p]);
  47. }
  48. printf("\nThe remainder is :\n");
  49. for(int p = 0; p < divlen - 1; p++) {
  50. printf("%d", rem[p]);
  51. }
  52. }
  53.  
  54. int main() {
  55. int data[21], datatemp[30], div[7], get = 0, templen;
  56. dmp[0] = 0;
  57. printf("Enter length of Data: ");
  58. scanf("%d", &datalen);
  59. templen=datalen;
  60. printf("\nEnter bits values: ");
  61. for(int e = 0;e < templen; e++) {
  62. scanf("%d", &data[e]);
  63. datatemp[e] = data[e];
  64. }
  65. printf("\nEnter divisor length : ");
  66. scanf("%d", &divlen);
  67. datalen+=divlen-1;
  68. printf("\nEnter bits values: ");
  69. for(int e = 0; e < divlen; e++) {
  70. scanf("%d",&div[e]);
  71. }
  72. for(int e = 0; e < divlen - 1; e++) {
  73. datatemp[templen+e] = 0;
  74. }
  75. printf("\nCRC GENERATOR\n");
  76. crc(datatemp,div);
  77. for(int e=0; e <divlen - 1; e++) {
  78. datatemp[templen+e] = rem[e];
  79. }
  80. printf("\nCRC CHECKER\n");
  81. crc(datatemp, div);
  82. for(int e = 0;e < divlen - 1; e++) {
  83. get += rem[e];
  84. }
  85. if(get == 0) {
  86. printf("\nData is Correct !!!\n");
  87. }
  88. else{
  89. printf("\nError in Data\n");
  90. }
  91. }
Add Comment
Please, Sign In to add comment