I can't entirely understand CRC32. I've read this, but that only deals with the long XOR division when the first w+1 digits of the message are greater than the CRC.. if it's something like
_______________
10011 ) 11010110110000
--------10011
------------------------
---------10011
---------10011
------------------------
----------00001
----------00000
------------------------
-----------00010
-----------00000
------------------------
------------00101
------------00000
------------------------
-------------01011
-------------00000
------------------------
--------------10110
--------------10011
------------------------
---------------01010
---------------00000
------------------------
----------------10100
----------------10011
------------------------
-----------------01110
-----------------00000
------------------------
------------------1110 = Remainder
If it doesn't make sense because of the alignment, check the original one in the aforementioned link.. it's in part 5
that's easy because the first "dividend" (11010) is greater than the first "divisor" (which is 10011), if it's smaller though (I'll change the divisor), wouldn't it be like:
_______________
11100 ) 11010110110000
--------00000
------------------------
--------110101
--------011100
------------------------
--------1010011
--------0011100
------------------------
--------10011110
--------00011100
------------------------
--------100000101
--------000011100
------------------------
--------1000111011
--------0000011100
------------------------
--------10001001110
--------00000011100
------------------------
--------100010100100
--------000000011100
------------------------
--------1000101110000
--------0000000011100
------------------------
--------10001011011000
--------00000000011100
------------------------
--------10001011000100 = remainder?
I don't know what I'm missing, help please!
If you need help understanding the long division just because of the way it's arranged, I'll do it like:
23) 358819
----23
-------------
----128
----115
-------------
----0138
----0138
-------------
----00001
----00000
-------------
----000019
----000000
-------------
---------19 = remainder
basically in every block (seperated by the -------------), the first number is the remainder from last subtraction, and the second number is first number-(first number%divisor), AKA the number you subtract..
Well that was a tangent just in case you didn't get the division pattern.. if you still don't, sorry.
anyhoo, help please!