Added CRC assignment.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								1/ISO/assignments/crc-32/crc-32.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1/ISO/assignments/crc-32/crc-32.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										39
									
								
								1/ISO/assignments/crc-32/crc-32.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								1/ISO/assignments/crc-32/crc-32.tex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
\documentclass[12pt,a4paper]{article}
 | 
			
		||||
\usepackage[spanish]{babel}
 | 
			
		||||
 | 
			
		||||
\title{Cyclic Redundancy Check}
 | 
			
		||||
\author{Nicolás A. Ortega}
 | 
			
		||||
 | 
			
		||||
\begin{document}
 | 
			
		||||
\maketitle
 | 
			
		||||
La CRC es un código usado para detectar errores que se suele usar en redes
 | 
			
		||||
digitales y dispositivos de almacenamiento. Funciona cogiendo el resto de una
 | 
			
		||||
división polinómica. De esta manera, los cálculos se repiten y si la prueba no
 | 
			
		||||
concuerda con los anteriores, se hacen correcciones para prevenir corrupción de
 | 
			
		||||
datos.
 | 
			
		||||
 | 
			
		||||
Es muy popular ya que es simple de implementar en hardware binario y bastante
 | 
			
		||||
bueno en la detección de errores comunes causadas por ruido.
 | 
			
		||||
 | 
			
		||||
La CRC-32 es un variante del CRC que guarda el código CRC en un variable de 32
 | 
			
		||||
bits. En C se implementaría de la manera siguiente:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
#include <inttypes.h>
 | 
			
		||||
 | 
			
		||||
uint32_t CRC32(const uint8_t data[], size_t data_length)
 | 
			
		||||
{
 | 
			
		||||
  uint32_t crc32 = 0xFFFFFFFFu;
 | 
			
		||||
 | 
			
		||||
  for (size_t i = 0; i < data_length; i++)
 | 
			
		||||
  {
 | 
			
		||||
    const uint32_t lookupIndex = (crc32 ^ data[i]) & 0xff;
 | 
			
		||||
    crc32 = (crc32 >> 8) ^ CRCTable[lookupIndex];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  crc32 ^= 0xFFFFFFFFu;
 | 
			
		||||
  return crc32;
 | 
			
		||||
}
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
\end{document}
 | 
			
		||||
		Reference in New Issue
	
	Block a user