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

📄 crc16.java

📁 CRC16算法的Java实现
💻 JAVA
字号:
package inspur.tax.wsbs.htcl.util;

public class CRC16 {
	public int value;

	public CRC16() {
		value = 0;
	}

	/** update CRC with byte b */
	public void update(byte aByte) {
		int a, b;

		a = (int) aByte;
		for (int count = 7; count >= 0; count--) {
			a = a << 1;
			b = (a >>> 8) & 1;
			if ((value & 0x8000) != 0) {
				value = ((value << 1) + b) ^ 0x1021;
			} else {
				value = (value << 1) + b;
			}
		}
		value = value & 0xffff;
		return;
	}

	/** reset CRC value to 0 */
	public void reset() {
		value = 0;
	}

	public int getValue() {
		return value;
	}

	public static void main(String[] args) {
		CRC16 crc16 = new CRC16();
		byte[] b = new byte[] {
				// (byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72
				(byte) 0x2C, (byte) 0x00, (byte) 0xFF, (byte) 0xFE,
				(byte) 0xFE, (byte) 0x04, (byte) 0x00, (byte) 0x00,
				(byte) 0x00, (byte) 0x00 };
		for (int k = 0; k < b.length; k++) {
			crc16.update(b[k]);
		}
		System.out.println(Integer.toHexString(crc16.getValue()));
		System.out.println(Integer.toHexString(b.length));
	}
}

⌨️ 快捷键说明

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