## so far 10495 visitors

You created a great website. Very useful resources for many of us.

Just one thing, I wonder if CRC8-MAXIM has typo at the Poly (0x31) line.

The calculated result seems to agree with the published reversed poly 0x8C.

Could you please double check?

Hi Bastian,

your site is great!

I head some difficulties to derive the crc32 checksum from ogg pages under Go. I just pulled the crc32 table (poly 0x4C11DB7 / init. val == fin. xor == 0x0) from your generator and passed the page to the function below. Evtl. that solution could undergo an optimization, but I'm very happy with the result right now.

Thank you,

Matze

---

func OggCRC(page []byte) uint32 {

var crc uint32

a, b, c, d := page[22], page[23], page[24], page[25]

page[22], page[23], page[24], page[25] = 0, 0, 0, 0

for _, v := range page {

crc = crc32Table[byte(crc>>24)^v] ^ (crc << 8)

}

page[22], page[23], page[24], page[25] = a, b, c, d

// flip bytes

return (crc&0x000000ff)<<24 + (crc&0x0000ff00)<<8 + (crc&0x00ff0000)>>8 + (crc&0xff000000)>>24

}

Hi! I can't choose any other CRC32 aglorithm from dropdown. Only basic CRC32 is available. Could you fix this? :)

Your online crc calculator is very very helpful! Thanks for creating this website. It saved me a lot of time.

Your CRC calcuator is the most complete one if found! Great job, it helped me a lot. Thank you.

1-28-17

Many thanks for your article on basic rotations derivation.

Instead of looking at .e.g. Amazon or the
author's website I was curious if part 6 of
'Algorithms in C' was published yet
(it's been years) (I seem to recall this was
planned but without looking at the books I
don't know for certain and is besides the
point) - and came across your website.

I'm familiar with parsing mathematical
expressions (and other types) but I still took a
look at your article http://www.sunshine2k.de/coding/jav
a/SimpleParser/SimpleParser.html

(although C is my favourite language it is easy
to translate Java to C)

I admit
I'm barely able to keep my eyes open but I
could swear something is wrong (but this means
maybe I'm ignoring the obvious) in the
'evaluateIntern' function (okay,
'method'): you check for '+'
and evaluate - and you check for '-' and
evaluate '+'.

But it's a
good article anyway (though admittedly I did not
read it in full what I read is good).

Cheers.

Thanks for your analysis of the projection of a point onto a line. It was the best I found on the web using Google. It was easy to convert your Java code to C for my application.

Hello, thanks for your site. I found the 'CRC Calculator (Java)' very useful in solving an issue with customer CRC-16.

Best regards.

Thanks Bastian for your CRC tutorial. It is the most comprehensive, didactic and step-by-step conceived among the documentation I've found. Clear and effective!