From 41c3674fa2898458bfb1cde027ca08674c5a5909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Fri, 22 Oct 2021 16:54:43 +0200 Subject: [PATCH] Added CRC assignment. --- 1/ISO/assignments/crc-32/crc-32.pdf | Bin 0 -> 15061 bytes 1/ISO/assignments/crc-32/crc-32.tex | 39 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 1/ISO/assignments/crc-32/crc-32.pdf create mode 100644 1/ISO/assignments/crc-32/crc-32.tex diff --git a/1/ISO/assignments/crc-32/crc-32.pdf b/1/ISO/assignments/crc-32/crc-32.pdf new file mode 100644 index 0000000000000000000000000000000000000000..41025dfb266f52d77db2e79db51eb314471fc621 GIT binary patch literal 15061 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�O44#N+O03K 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%0A~ zmOc?(n}{n?>8i{a(jEEoyjoTw&ktD~NVn?FN;^0jg!wAbGxinYXreeJ&^wq4N?^#c zEIfYvy6cwUoq0D}IeZb3WrI&?C!HAGdSPcv5|4>!59`*COBqzhl5j}qRMPKj6_45^ zt0yn7O;i|>j$)-8Q3#e)Xf*;5w7C`t0V@K(xXp&%Yu2n>cYKJ4#xuwuc?jEGBvfC# zB?M`?nKgO9YN^k!tyMLbA8_}(*5q*vts=>gXF}8)&T&v$sBdTzwjiklJ!$F5+>%S5 z1zr|{;-Q|!R$~phgowf6iB{cXi~T!5KsYTY8K&x=gbs4ij@>bt(}Nu?XghkjKciNy zof);|7x}8TrVusiF>eJXG|B!wzCIvVWt^;>|EdE13kA;UA&CbuczPguKzd+f!u9wxn16zh z6sQ;V0=Cmy*3qf00X(lQsVWwYV+j+CGXqlWn4Lz$to%9@dt~lg- z$w?c(x~iBwfGK+Az&e3Rj8hcTZAuIl+A=;VmmBORc%F(xG_?cX=P%iPA{^O9&u6hZ z^XPIRtD3y0{?JV8xn#s4Uy7(Ae~alJM>@uAl-ZZf^D7av4KoeN6kC@AGfyccL`5Yq zmCf=tw4OMdijlCT>y`}P!nMW{`$bA&akrEuMNrMKlqprA4b^QjlilW4g~blt$7tab zVXluiN<}}UJyE5hfE8w-k@wdUH^gCwEvGG&feui@aXIidiOUaSE|p;}wV59Q18eqM z#rw4_ON;?e`%D=wIe-viDmFnkW8MBTT*R<-L4xKyQ7+ zdb=8Qb7Hh$X*Wf)fl!YLjTC9&!m{gGjt?#X9&7ANyzhi@aAW>@*?U?ze@s3j zsT2C@8gD1*?WMP5z@_O;b0C(Dq0-fM{b2TIVo>& zzKHt{_DT?B*-o|W4qnDI7mc~exaaOD!bkg*2-+C?2Ixsopcruxu3)|PUm3$>@;2PP z(X84DHvH272&juitwKOdzDYFZ|hW7ny9;-be3D@HArHDribzrt0m}s4E0;NR7vm{znj~v<~NIvfUmty{^ zURb`K?C+TYA74&U#*{zh9~HcF0=I+wkrd1A64_8h+56C^jl6woll*cwTdRpLX2XUK zeu2K}I`*Kb)!IcfCQC!$c`5VdBFzf9IpZ&w)_eYgU2`cc*G+TeoOU z?>9!Q38 + +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}