github.com/MangoDowner/go-gm@v0.0.0-20180818020936-8baa2bd4408c/src/hash/crc32/example_test.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package crc32_test 6 7 import ( 8 "fmt" 9 "hash/crc32" 10 ) 11 12 func ExampleMakeTable() { 13 // In this package, the CRC polynomial is represented in reversed notation, 14 // or LSB-first representation. 15 // 16 // LSB-first representation is a hexadecimal number with n bits, in which the 17 // most significant bit represents the coefficient of x⁰ and the least significant 18 // bit represents the coefficient of xⁿ⁻¹ (the coefficient for xⁿ is implicit). 19 // 20 // For example, CRC32-Q, as defined by the following polynomial, 21 // x³²+ x³¹+ x²⁴+ x²²+ x¹⁶+ x¹⁴+ x⁸+ x⁷+ x⁵+ x³+ x¹+ x⁰ 22 // has the reversed notation 0b11010101100000101000001010000001, so the value 23 // that should be passed to MakeTable is 0xD5828281. 24 crc32q := crc32.MakeTable(0xD5828281) 25 fmt.Printf("%08x\n", crc32.Checksum([]byte("Hello world"), crc32q)) 26 // Output: 27 // 2964d064 28 }