⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc16.py

📁 This is a software implementation of the USB low-speed protocol for the Atmel ATtiny microcontrolle
💻 PY
字号:
#!/usr/bin/python# ======================================================================# crc16.py - Prototype implementations of CRC16 calculation## Copyright 2006-2008 Dick Streefland## This is free software, licensed under the terms of the GNU General# Public License as published by the Free Software Foundation.# ======================================================================import syspolynomial = 0xA001	# X^16 + X^15 + X^2 + 1 - lower 16 bits, reverseddef crc_update(crc, value, bits):	for bit in range(bits):		xor = (crc ^ (value >> bit)) & 1		crc >>= 1		if xor:			crc ^= polynomial	return crcdef crc1(crc, byte):	return crc_update(crc, byte, 8)def crc4(crc, byte):	crc = (crc >> 4) ^ tab4[(crc ^ byte) & 0xf]	crc = (crc >> 4) ^ tab4[(crc ^ (byte >> 4)) & 0xf]	return crcdef crc8(crc, byte):	return (crc >> 8) ^ tab8[(crc ^ byte) & 0xff]def crc_file(file, crcfunc):	crc = 0xffff	for byte in open(file).read():		crc = crcfunc(crc, ord(byte))	crc ^= 0xffff	print "%02x %02x %s" % (crc & 0xff, crc >> 8, file)tab4 = [crc_update(i, 0, 4) for i in range(2**4)]tab8 = [crc_update(i, 0, 8) for i in range(2**8)]for file in sys.argv[1:]:	crc_file(file, crc1)	crc_file(file, crc4)	crc_file(file, crc8)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -