{"id":204,"date":"2022-11-28T18:52:17","date_gmt":"2022-11-28T18:52:17","guid":{"rendered":"http:\/\/learnlearn.uk\/ibcs\/?page_id=204"},"modified":"2022-11-28T19:20:41","modified_gmt":"2022-11-28T19:20:41","slug":"error-checking","status":"publish","type":"page","link":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/","title":{"rendered":"Error Detection"},"content":{"rendered":"<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Introduction<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Why do errors occur?<\/h3>\n<p>When data is transferred through a network at each stage there is possibility that data might get corrupted. Therefore when a packet is received it needs to be checked to ensure the integrity of the data. Two common ways this can be achieved is through the use of\u00a0<strong>parity bits<\/strong>\u00a0and\u00a0<strong>check-sums<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n\n<\/div><h2 class=\"tabtitle\">Parity Bit<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Parity Bit (Aka Check Bit)<\/h3>\n<p>A check bit is a simple method of error checking used to <strong>detect data corruption\u00a0of small blocks of data <\/strong>(usually at byte level)\u00a0during storage or transmission of data. A single bit of data is added to a string of bits and order to ensure that the sum of the total of bits is either even or odd.<\/p>\n<ul>\n<li>If <strong>even parity<\/strong> is used then sum of the digits must add up to an even number<\/li>\n<li>If<strong> odd parity<\/strong> is used the sum of the digits must add up to an off number<\/li>\n<\/ul>\n<p>After the data is transmitted, the receiving device adds up the string of bits again (this time including the added bits) and checks it for parity.<\/p>\n<p>If the received data does not match the required parity then the data is corrupt and must be re-sent.<\/p>\n<p><strong>Example(using even parity)<\/strong><\/p>\n<table width=\"829\">\n<tbody>\n<tr>\n<td>Original 7-bit binary data<\/td>\n<td>0110101<\/td>\n<\/tr>\n<tr>\n<td>Binary data with 0 parity bit added<\/td>\n<td>01101010<\/td>\n<\/tr>\n<tr>\n<td>Example received data (corrupted)<\/td>\n<td>01001010\u00a0 \u00a0 (Now odd number of 1s)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In the example above the 7 original bits added up to an even number, so a 0 was added to the end. When the data was received the number now added up to an odd number, so the data must have been corrupted during the transmission process.<\/p>\n<p><strong>Limitations of parity bits<\/strong><\/p>\n<p>A parity bit check is not perfect and some errors are still possible (for example if 2 bits have been corrupted)<\/p>\n\n<\/div><h2 class=\"tabtitle\">Check Digits<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Check Digits<\/h3>\n<p>A check digit is a single digit number that is added to the end of a string of digits to <strong>detect human error<\/strong> during manual entry, such as entering a wrong digit or reversing two digits when entering a credit card on a shopping website.<\/p>\n<p>Check digits are commonly used on:<\/p>\n<ul>\n<li>Barcodes<\/li>\n<li>Credit Cards<\/li>\n<li>Account Numbers<\/li>\n<li>Government ID Numbers<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id=\"attachment_380\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/ISBN-13.jpg\"><img aria-describedby=\"caption-attachment-380\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-380 size-full\" src=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/ISBN-13.jpg\" alt=\"\" width=\"300\" height=\"150\" \/><\/a><p id=\"caption-attachment-380\" class=\"wp-caption-text\">Check digits can be found everywhere, from food packaging to the barcode on the back of your favourite book.<\/p><\/div>\n\n<\/div><h2 class=\"tabtitle\">Luhn's Algorithm<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Luhn&#8217;s Algorithm<\/h3>\n<p>Luhn&#8217;s algorithm is a simple mathematical technique that used modulo to detect simple errors. It is commonly used on 15 digit credit card numbers to automatically calculate the 16th digit.<\/p>\n<p>The technique is simple.<\/p>\n<p>Write all the digits down in order.<\/p>\n<ol>\n<li>For each number in the sequence that is in an odd position (first, third, fifth,etc) multiply that number by two and add each of the digits of the result together.<\/li>\n<li>For each number in the sequence that is\u00a0 in even position, leave it as is.<\/li>\n<li>Now add up all the resultant numbers together (including the ones you left as is)<\/li>\n<li>Work out 10 minus modulo 10 of the total\u00a0 ( = 10 &#8211; Total MOD 10 )<\/li>\n<li>The answer is the 16th digit!<\/li>\n<\/ol>\n<p>For example:<\/p>\n<table dir=\"ltr\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"207\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/>\n<col width=\"40\" \/><\/colgroup>\n<tbody>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Credit Card Number&quot;}\">Credit Card Number<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:5}\">5<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:9}\">9<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:7}\">7<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:3}\">3<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\">4<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Multiplier&quot;}\">Multiplier<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\">2<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Result&quot;}\">Result<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:8}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">8<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:10}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">10<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:9}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">9<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:14}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">14<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:12}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">12<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:3}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">3<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:8}\" data-sheets-formula=\"=R[-2]C[0]*R[-1]C[0]\">8<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Digits added&quot;}\">Digits added<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:8}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">8<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:9}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">9<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:5}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">5<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:3}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">3<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:3}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">3<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:8}\" data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\">8<\/td>\n<td data-sheets-formula=\"=if(len(R[-1]C[0])&gt;1,left(R[-1]C[0]) + right(R[-1]C[0]),R[-1]C[0])\"><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Sum Total&quot;}\">Sum Total<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:59}\" data-sheets-formula=\"=sum(R[-2]C[0]:R[-2]C[14])\">59<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;10 - Total Mod 10&quot;}\">10 &#8211; Total Mod 10<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=10 - mod(R[-1]C[0],10)\">1<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;FInal CC Number&quot;}\">Final CC Number<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=R[-8]C[0]\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-8]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:5}\" data-sheets-formula=\"=R[-8]C[0]\">5<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:9}\" data-sheets-formula=\"=R[-8]C[0]\">9<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-8]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=R[-8]C[0]\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:7}\" data-sheets-formula=\"=R[-8]C[0]\">7<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\" data-sheets-formula=\"=R[-8]C[0]\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:6}\" data-sheets-formula=\"=R[-8]C[0]\">6<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:3}\" data-sheets-formula=\"=R[-8]C[0]\">3<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=R[-8]C[0]\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-8]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:2}\" data-sheets-formula=\"=R[-8]C[0]\">2<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=R[-8]C[0]\">1<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:4}\" data-sheets-formula=\"=R[-8]C[0]\">4<\/td>\n<td data-sheets-value=\"{&quot;1&quot;:3,&quot;3&quot;:1}\" data-sheets-formula=\"=if(counta(R[0]C[-15]:R[0]C[-1]) = 15,R[-2]C[-15],&quot;&quot;)\">1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div><\/div>\n<div>If you want to try it out live, <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1tVJmH1e-vtEpXetUvYzLXgrBAAc9S7eB9oj_9UvXIxs\/edit?usp=sharing\">Try out it on this google sheets doc<\/a> (Go To File &gt; Make a copy) and use your own numbers<\/div>\n<div><\/div>\n<div id=\"attachment_381\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/credit-card-4438385_1280.png\"><img aria-describedby=\"caption-attachment-381\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-381 size-medium\" src=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/credit-card-4438385_1280-300x212.png\" alt=\"\" width=\"300\" height=\"212\" \/><\/a><p id=\"caption-attachment-381\" class=\"wp-caption-text\">Is this a valid card number? Trying working out the answer by using Luhn&#8217;s algorithm below<\/p><\/div>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<p>Barcodes use a mod 10 algorithm with a 3x multiplier instead of a 2x<\/p>\n\n<\/div><h2 class=\"tabtitle\">Check sums<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Check Sums<\/h3>\n<p>Check sums are used to <strong>detect accidental corruption of large blocks of data<\/strong> after transmission of storage. They are commonly used to verify the integrity of downloaded files or programs after downloading them from the internet.<\/p>\n<p>The use more complex algorithms than check digits or parity bits and the resultant sum is much larger in size. While checksums do not 100% guarantee the integrity of data ensure a very high probability of corruption detection.<\/p>\n<p><a href=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/checksum-example.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-382 \" src=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/checksum-example.png?_t=1642039585\" alt=\"\" width=\"645\" height=\"641\" \/><\/a><\/p>\n<h3><\/h3>\n\n<\/div><h2 class=\"tabtitle\">Resources<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Resources<\/h3>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=jLuj62Gq-1I\">Parity Bits tutorial<\/a><\/p>\n<p><a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1tVJmH1e-vtEpXetUvYzLXgrBAAc9S7eB9oj_9UvXIxs\/edit?usp=sharing\">Luhn&#8217;s Algorithm Google Sheet<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Past Paper Questions<\/strong><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2015-jun-0478-s15-qp-12-pdf\">0478\/12 Paper 1 Theory May\/June 2015 &#8211; Qn 5<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2016-jun-0478-s16-qp-11-pdf\">0478\/11 Paper 1 Theory May\/June 2016\u00a0\u00a0<\/a>Qn 9<\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2016-jun-0478-s16-qp-12-pdf\">0478\/12 &#8211; Paper 1 Theory May\/June 2016 Qn<\/a>4b<\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2016-nov-0478-w16-qp-11-pdf\">0478\/11 &#8211; Paper 1 Theory October\/November 2016 45d<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2016-nov-0478-w16-qp-12-pdf\">0478\/12 &#8211; Paper 1 Theory October\/November 2016 Qn4<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2017-jun-0478-s17-qp-11-pdf\">0478\/11 &#8211; Paper 1 Theory May\/June 2017 Qn 5<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-upper-secondary-igcse-computer-science-0478-2018-oct-nov-0478-w18-qp-12-pdf\">0478\/12 &#8211; Paper 1 Theory October\/November 2018 qn 9b<\/a><\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Why do errors occur? When data is transferred through a network at each stage there is possibility that data might get corrupted. Therefore when a packet is received it needs to be checked to ensure the integrity of the data. Two common ways this can be achieved is through the use of\u00a0parity bits\u00a0and\u00a0check-sums. &nbsp; Parity&hellip;&nbsp;<a href=\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Error Detection<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":70,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Error Detection - IB Computer Science<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Error Detection - IB Computer Science\" \/>\n<meta property=\"og:description\" content=\"Why do errors occur? When data is transferred through a network at each stage there is possibility that data might get corrupted. Therefore when a packet is received it needs to be checked to ensure the integrity of the data. Two common ways this can be achieved is through the use of\u00a0parity bits\u00a0and\u00a0check-sums. &nbsp; Parity&hellip;&nbsp;Read More &raquo;Error Detection\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\" \/>\n<meta property=\"og:site_name\" content=\"IB Computer Science\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-28T19:20:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/ISBN-13.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\",\"url\":\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\",\"name\":\"Error Detection - IB Computer Science\",\"isPartOf\":{\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#website\"},\"datePublished\":\"2022-11-28T18:52:17+00:00\",\"dateModified\":\"2022-11-28T19:20:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/error-checking\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"IB Computer Science\",\"item\":\"https:\/\/learnlearn.uk\/ibcs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Error Detection\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#website\",\"url\":\"https:\/\/learnlearn.uk\/ibcs\/\",\"name\":\"IB Computer Science\",\"description\":\"- learnlearn..uk\",\"publisher\":{\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnlearn.uk\/ibcs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#organization\",\"name\":\"IB Computer Science\",\"url\":\"https:\/\/learnlearn.uk\/ibcs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnlearn.uk\/ibcs\/wp-content\/uploads\/sites\/25\/2022\/09\/LearnLearnLogowhite-300x41.png\",\"contentUrl\":\"https:\/\/learnlearn.uk\/ibcs\/wp-content\/uploads\/sites\/25\/2022\/09\/LearnLearnLogowhite-300x41.png\",\"width\":300,\"height\":41,\"caption\":\"IB Computer Science\"},\"image\":{\"@id\":\"https:\/\/learnlearn.uk\/ibcs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Error Detection - IB Computer Science","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/","og_locale":"en_GB","og_type":"article","og_title":"Error Detection - IB Computer Science","og_description":"Why do errors occur? When data is transferred through a network at each stage there is possibility that data might get corrupted. Therefore when a packet is received it needs to be checked to ensure the integrity of the data. Two common ways this can be achieved is through the use of\u00a0parity bits\u00a0and\u00a0check-sums. &nbsp; Parity&hellip;&nbsp;Read More &raquo;Error Detection","og_url":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/","og_site_name":"IB Computer Science","article_modified_time":"2022-11-28T19:20:41+00:00","og_image":[{"url":"https:\/\/learnlearn.uk\/igcsecs\/wp-content\/uploads\/sites\/23\/2020\/08\/ISBN-13.jpg"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/","url":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/","name":"Error Detection - IB Computer Science","isPartOf":{"@id":"https:\/\/learnlearn.uk\/ibcs\/#website"},"datePublished":"2022-11-28T18:52:17+00:00","dateModified":"2022-11-28T19:20:41+00:00","breadcrumb":{"@id":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnlearn.uk\/ibcs\/error-checking\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/learnlearn.uk\/ibcs\/error-checking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"IB Computer Science","item":"https:\/\/learnlearn.uk\/ibcs\/"},{"@type":"ListItem","position":2,"name":"Error Detection"}]},{"@type":"WebSite","@id":"https:\/\/learnlearn.uk\/ibcs\/#website","url":"https:\/\/learnlearn.uk\/ibcs\/","name":"IB Computer Science","description":"- learnlearn..uk","publisher":{"@id":"https:\/\/learnlearn.uk\/ibcs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnlearn.uk\/ibcs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/learnlearn.uk\/ibcs\/#organization","name":"IB Computer Science","url":"https:\/\/learnlearn.uk\/ibcs\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/learnlearn.uk\/ibcs\/#\/schema\/logo\/image\/","url":"https:\/\/learnlearn.uk\/ibcs\/wp-content\/uploads\/sites\/25\/2022\/09\/LearnLearnLogowhite-300x41.png","contentUrl":"https:\/\/learnlearn.uk\/ibcs\/wp-content\/uploads\/sites\/25\/2022\/09\/LearnLearnLogowhite-300x41.png","width":300,"height":41,"caption":"IB Computer Science"},"image":{"@id":"https:\/\/learnlearn.uk\/ibcs\/#\/schema\/logo\/image\/"}}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"learnlearnadmin","author_link":"https:\/\/learnlearn.uk\/ibcs\/author\/learnlearnadmin\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"Why do errors occur? When data is transferred through a network at each stage there is possibility that data might get corrupted. Therefore when a packet is received it needs to be checked to ensure the integrity of the data. Two common ways this can be achieved is through the use of\u00a0parity bits\u00a0and\u00a0check-sums. &nbsp; Parity&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/pages\/204"}],"collection":[{"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/comments?post=204"}],"version-history":[{"count":4,"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/pages\/204\/revisions"}],"predecessor-version":[{"id":248,"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/pages\/204\/revisions\/248"}],"wp:attachment":[{"href":"https:\/\/learnlearn.uk\/ibcs\/wp-json\/wp\/v2\/media?parent=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}