Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. package crc4
  2.  
  3. func Checksum(b []byte) uint8 {
  4. crc := 0xFFFF
  5. for bI := 0; bI < len(b); bI++ {
  6. bit := uint8(0x80)
  7. for bitI := 0; bitI < 8; bitI++ {
  8. xorFlag := ((crc & 0x8000) == 0x8000)
  9. crc = crc << 1
  10. if ((b[bI] & bit) ^ uint8(0xFF)) != uint8(0xFF) {
  11. crc = crc + 1
  12. }
  13.  
  14. if xorFlag {
  15. crc = crc ^ 0x1021
  16. }
  17.  
  18. bit = bit >> 1
  19. }
  20. }
  21. return uint8(crc)
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement