16 views

Uploaded by Ravikant Ambulgekar

Attribution Non-Commercial (BY-NC)

- Sam
- Solman-128852 (2)
- 131021_InuktunProtocol.pdf
- Fairchild Byte Wise CRC
- How to Setup 11gactivedatabaguard
- Fractions
- Lte Dci Formats
- Agario Hacker Skins
- Arith1
- 05-11-03 CQI
- Generation of Cryptographic Key and Fuzzy Vault
- Lecture 9
- Solution for IUB Congestion
- 10000 Numbers c++ code
- Maths worksheets(grade 3-7).docx
- MCP2515.pdf
- CD 00259166
- DSS Operator User's Manual 2009-8
- 21801e
- E160L18

You are on page 1of 3

changes to raw computer data, and is commonly used in digital networks and storage devices such as hard disk drives. A CRC-enabled device calculates a short, fixed-length binary sequence, known as the CRC code or just CRC, for each block of data and sends or stores them both together. When a block is read or received the device repeats the calculation; if the new CRC does not match the one calculated earlier, then the block contains a data error and the device may take corrective action such as rereading or requesting the block be sent again, otherwise the data is assumed to be error free (though, with some small probability, it may contain undetected errors; this is the fundamental nature of error-checking). CRCs are so called because the check (data verification) code is a redundancy (it adds zero information to the message) and the algorithm is based on cyclic codes. The term CRC may refer to the check code or to the function that calculates it, which accepts data streams of any length as input but always outputs a fixed-length code. CRCs are popular because they are simple to implement in binary hardware, are easy to analyze mathematically, and are particularly good at detecting common errors caused by noise in transmission channels. The CRC was invented by W. Wesley Peterson in 1961; the 32-bit polynomial used in the CRC function of Ethernet and many other standards is the work of several researchers and was published in 1975. A CRC is an error-detecting code. Its computation resembles a polynomial long division operation in which the quotient is discarded and the remainder becomes the result, with the important distinction that the polynomial coefficients are calculated according to the carry-less arithmetic of a finite field. The length of the remainder is always less than the length of the divisor (called the generator polynomial), which therefore determines how long the result can be. The definition of a particular CRC specifies the divisor to be used, among other things. Although CRCs can be constructed using any finite field, all commonly used CRCs employ the finite field GF(2). This is the field of two elements, usually called 0 and 1, comfortably matching computer architecture. The rest of this article will discuss only these binary CRCs, but the principles are more general. An important reason for the popularity of CRCs for detecting the accidental alteration of data is their efficiency guarantee. Typically, an n-bit CRC, applied to a data block of arbitrary length, will detect any single error burst not longer than n bits (in other words, any single alteration that spans no more than n bits of the data), and will detect a fraction 12n of all longer error bursts. Errors in both data transmission channels and magnetic storage media tend to be distributed non-randomly making CRCs' properties more useful than alternative schemes such as multiple parity checks. The simplest error-detection system, the parity bit, is in fact a trivial 1-bit CRC: it uses the generator polynomial x+1.

Cyclic redundancy check using C //Program to add crc check bit #include<stdio.h> #include<string.h> #define N strlen(g) char t[28],cs[28],g[]="10001000000100001"; int a,e,c; void xor(){ for(c = 1;c < N; c++) cs[c] = (( cs[c] == g[c])?'0':'1'); } void crc(){ for(e=0;e<N;e++) cs[e]=t[e]; do{ if(cs[0]=='1') xor(); for(c=0;c<N-1;c++) cs[c]=cs[c+1]; cs[c]=t[e++]; }while(e<=a+N-1); } int main() { printf("\nEnter data : "); scanf("%s",t); printf("\n----------------------------------------"); printf("\nGeneratng polynomial : %s",g); a=strlen(t); for(e=a;e<a+N-1;e++) t[e]='0'; printf("\n----------------------------------------"); printf("\nModified data is : %s",t); printf("\n----------------------------------------"); crc(); printf("\nChecksum is : %s",cs); for(e=a;e<a+N-1;e++) t[e]=cs[e-a]; printf("\n----------------------------------------"); printf("\nFinal codeword is : %s",t); printf("\n----------------------------------------");

printf("\nTest error detection 0(yes) 1(no)? : "); scanf("%d",&e); if(e==0) { do{ printf("\nEnter the position where error is to be inserted : "); scanf("%d",&e); }while(e==0 || e>a+N-1); t[e-1]=(t[e-1]=='0')?'1':'0'; printf("\n----------------------------------------"); printf("\nErroneous data : %s\n",t); } crc(); for(e=0;(e<N-1) && (cs[e]!='1');e++); if(e<N-1) printf("\nError detected\n\n"); else printf("\nNo error detected\n\n"); printf("\n----------------------------------------\n"); return 0; } Makefile a.out:crc.c gcc -ggdb crc.c PHONY:clean clean: rm a.out *~ Example output Enter data : 1101 ---------------------------------------Generatng polynomial : 10001000000100001 ---------------------------------------Modified data is : 11010000000000000000 ---------------------------------------Checksum is : 1101000110101101 ---------------------------------------Final codeword is : 11011101000110101101 ---------------------------------------Test error detection 0(yes) 1(no)? : 0 Enter the position where error is to be inserted : 2 ---------------------------------------Erroneous data : 10011101000110101101 Error detected ----------------------------------------

- SamUploaded bySham Sundhar
- Solman-128852 (2)Uploaded bysygoriya
- 131021_InuktunProtocol.pdfUploaded byjhoeduzapa
- Fairchild Byte Wise CRCUploaded bywildbirds
- How to Setup 11gactivedatabaguardUploaded bybruced0812
- FractionsUploaded byjuriah binti ibrahim
- Lte Dci FormatsUploaded byMohseen Sagri
- Agario Hacker SkinsUploaded byAbrahamsenAlvarez0
- Arith1Uploaded bySachin Ghankot
- 05-11-03 CQIUploaded byeustrm
- Generation of Cryptographic Key and Fuzzy VaultUploaded bypriyakapoor77
- Lecture 9Uploaded byAli Ahmad
- Solution for IUB CongestionUploaded byMarolop Hengki Rianto
- 10000 Numbers c++ codeUploaded byLuis Munoz Duarte
- Maths worksheets(grade 3-7).docxUploaded bylakshmigsr6610
- MCP2515.pdfUploaded byHector Sanchez
- CD 00259166Uploaded byRoozbeh Bahmanyar
- DSS Operator User's Manual 2009-8Uploaded byAdrian Constantin Ciontu
- 21801eUploaded byjismagic
- E160L18Uploaded byhossameddeen
- How to Nail CCIE VoiceUploaded byRobin Jain
- Different Ways of Connecting to 3DLevelScannerUploaded byTin Nguyen
- Data Communications BasicsUploaded byoifesobi
- 5th grade june20Uploaded byapi-293306171
- grade5Uploaded byapi-299469383
- Presentation 1 Lecture 01Uploaded byNitin Grover
- Simulation LabUploaded bymtnlbb777
- KiwiSUploaded bybeanche
- Arithmetic ProgressionUploaded bytheuniquecollection
- 5,6,7,8Uploaded by0Avendano

- DCN SyllabusUploaded byRavikant Ambulgekar
- new_docUploaded byRavikant Ambulgekar
- Sample Teaching PlanUploaded byRavikant Ambulgekar
- List of OS Experiments_OSUploaded byRavikant Ambulgekar
- Course ObjUploaded byRavikant Ambulgekar
- file1Uploaded byRavikant Ambulgekar
- UntitledUploaded bysundafunda
- Cultural Events IT DeptUploaded byRavikant Ambulgekar
- Course Objectives ESUploaded byRavikant Ambulgekar
- my_docUploaded byRavikant Ambulgekar
- my_docUploaded byRavikant Ambulgekar
- Sample DocUploaded byRavikant Ambulgekar

- Power Factor Correction - Neural NetworkUploaded byFabrício Rodrigues Barbosa
- Chapter Substructures FinalUploaded byMai Mancy
- Manual for TheoryUploaded byLong Si Vo
- ASME V Art 30 Terms.pdfUploaded bystalin_83
- Oracle Instance ArchitectureUploaded byKutti Kumari
- Linux Voice Issue 005Uploaded byPablo Velarde Alvarado
- Tl-wa901nd User GuideUploaded bydimkirk
- Assigment From Sekine Sensei (Martiwi)Uploaded byMartiwi Setiawati
- 5. PSI-Q & PSI-Qc_Intelligent Air Tools_Catalog.pdfUploaded bydeepakjothivel
- Copper Water PipingUploaded byNabil Rameh
- Test1 Marking Scheme fUploaded byFahad Ismail
- Denon AVR-X5200W .pdfUploaded byboroda2410
- Windows Activation KeysUploaded bysarawgiharshit
- VMAX Sub ManualUploaded byAlan_Cerezo_Ze_70
- Service Quality(Ranit Kundu)Uploaded byranitkundu
- Recruitment- HRMUploaded byAditi Jindal
- The TIRFOR PrincipleUploaded by1e2f3g
- 162 Automan Feb 2015 IssueUploaded byAutoman Magazine
- Assoc ParallelUploaded byAnonymous RrGVQj
- NetBackup 5240 Appliance Product Description - 3.0 Revision 2Uploaded bykhursheed4u3590
- EPA Nanotechnology White Paper External Review Draft 12-02-2005Uploaded byconmen2005
- Air Supported StructureUploaded bysuhruda
- o&gjournal20180402-dl.pdfUploaded byDharmendra Jadeja
- Noti_D2DEngg_2011Uploaded byNirav Patel
- Rotel RVC240 CB radio full service manualUploaded byRichard Shireby
- HS096 OP106 Guidelines on Well Abandonment Cost Estimation Issue 2 July 2015Uploaded byAnonymous IUFQJ8q4HR
- Chapter 3Uploaded byDayesh Parmar
- SAP2000 a to Z ProlemsUploaded byKira Yamato
- Michelle 2007Uploaded byagifajrinurholik
- Pumic Stone Lightweight BlockUploaded byHaniAmin