C#_CRC-16/CCITT-FALSE计算加判断

article/2025/10/31 7:28:03

C#_CRC-16/CCITT-FALSE计算加判断

前言:浪费半天时间研究出来的,试了网上其他好几个版本都算了不对,讲述的也不明确,我是直接移植一个c语言的版本,直接看代码,一个函数包含计算和判断的工能

在这里插入图片描述

private bool CRC16(byte[] buffer, ref byte[] ResCRC16)  //C# crc-16/CCITT-FALSE,带判断校验的
{bool status = false;ushort crc = 0xFFFF;int size = buffer.Length;  //计算待计算的数据长度int i = 0;if (size > 0){while(size-- > 0){crc = (ushort)((crc >> 8)|(crc << 8));crc ^= buffer[i++];crc ^= (ushort)(((byte)crc) >> 4);crc ^= (ushort)(crc << 12);crc ^= (ushort)((crc & 0xff) << 5);}}//判断输入的ResCRC16与计算出来的是否一致if(ResCRC16[0] == (byte)((crc >> 8) & 0xff) && ResCRC16[1] == (byte)(crc & 0xff)){status = true;}ResCRC16[1] = (byte)(crc & 0xff);ResCRC16[0] = (byte)((crc >> 8) & 0xff);return status;
}

接下来演示使用过程

private void button1_Click(object sender, EventArgs e)
{byte[] data = new byte[] { 0x01 ,0x22, 0x01, 0x08, 0x00, 0xe8, 0xa3, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00 };byte[] data2 = new byte[2];byte[] data3 = new byte[] { 0x94,0x5c};CRC16(data,ref data2);Console.WriteLine(data2[0]);  //打印CRC算出来的值Console.WriteLine(data2[1]);  //打印CRC算出来的值Console.WriteLine(CRC16(data, ref data3));  //判断是否是预设的CRC
}

http://chatgpt.dhexx.cn/article/xEoIPOOF.shtml

相关文章

CRC-CCITT CRC-16

CRC分为以下几种标准&#xff1a; CRC-12码CRC-16码CRC-CCITT码CRC-32码 在线CRC计算器 https://www.lammertbies.nl/comm/info/crc-calculation.html CRC计算器 http://www.pc6.com/softview/SoftView_100981.html CRC16 const uint16_t Table[256] {0x0000U, 0x1…

C语言CRC-16 CCITT格式校验函数

C语言CRC-16 CCITT格式校验函数 CRC-16校验产生2个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现&#xff0c;参考&#xff1a; C语言标准CRC-16校验函数。 不同同应用规范通过…

LabVIEW做CRC校验CRC-16/CCITT-FALSE算法

一直以来用的CRC校验的地方就是Modbus通讯&#xff0c;这次做项目遇到一个自定义协议需要CRC校验的协议&#xff0c;直接连例程发现计算结果不对通讯不上。后来发现CRC有很多中算法&#xff0c;网上资料也不全面。以下是我收藏总结的&#xff0c;估计也不全仅供参考。 参数解释…

CRC16-ccitt-false 递归解析每一个号码段的值

CRC16-ccitt-false 解析每一个号码段的值 数据准备 加密前&#xff1a;6011qwertyuiopa62440007db2a65b0306qrcode043339912211117000000016304 CRC16-ccitt-false加密后&#xff1a;4023&#xff08;网上有加密工具类&#xff0c;也有线上计算工具&#xff0c;如下图&#xff…

文本图像(二值图像)(黑白图像)的压缩算法介绍 CCITT-4 JBIG2

CCITT group3 CCITT group4 JBIG JBIG2 参考&#xff1a; JBIG2标准在数字图书馆中的应用 https://www.docin.com/p-821587404.html

C语言CRC-16 CCITT-FALSE格式校验函数

C语言CRC-16 CCITT-FALSE格式校验函数 CRC-16校验产生2个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现&#xff0c;参考&#xff1a; C语言标准CRC-16校验函数。 不同应用规范…

Eclipse与JDK、JRE的关系

1、首先说明的是&#xff0c;eclipse人家需要jre&#xff0c;而不需要jdk&#xff0c;人家内置的有。你只要在你的电脑上安装一个jre就行。至于jdk&#xff0c;它内置的有2、eclise也不要求你jdk或者jre配置环境变量&#xff0c;毕竟友不用notepad写代码&#xff0c;dos编译执行…

JDK、JRE、JVM三者关系

jdk、jre、jvm三者有什么关系&#xff1f; JDK ☁️ JDK&#xff1a;Java开发工具包&#xff1b; ☁️ JDK中包含了以下内容&#xff1a; ⚡️ Java虚拟机&#xff1a;用于运行Java程序&#xff1b; ⚡️ 核心类库&#xff1a;核心类库中是已经编写好的Java代码&#xff0…

JRE和JDK

JRE和JDK JRE(Java运行环境)Java Runtime Environment 包括Java虚拟机(JVM Java VirtualMachine)和Java程序所需的核心类库等&#xff0c;如果想要运行一个开发好的Java程序&#xff0c;计算机中只需要安装JRE即可。 JRE 核心类库 JVM JDK(Java开发工具包)Java Development…

JDK,JRE,JVM三者间的关系,以及JDK、JRE的主要结构

一、JDK&#xff0c;JRE是什么&#xff1f; 1.JDK 是提供给 Java 开发人员使用的&#xff0c;其中包含了 java 的开发工具&#xff0c;也包括了 JRE。所以安装了JDK&#xff0c;就不用在单独安装JRE了。 2.JRE是包括 Java 虚拟机 (JVM J ava V irtual M achine) 和 Java 程…

【jdk与jre 的关系】

**jdk与jre 的关系** jdk中包含jre和核心开发工具, jre中包含jvm和核心开发类库 jdk中包含jre和核心开发工具, jre中包含jvm和核心开发类库 注: JVM是指Java虚拟机。

JDK、JRE和JVM三者之间关系

JDK、JRE和JVM三者之间关系 很多程序员已经写了很长一段时间java了&#xff0c;依然不明白JDK,JRE,JVM的区别。今天个人总结一下它们三者的关系、区别。 JDK&#xff08;Java Development Kit&#xff09;是针对Java开发员的产品&#xff0c;是整个Java的核心&#xff0c;包括了…

JDK与JRE的安装与配置

这两天为了这个JAVA的编译环境JDK和JRE的配置可花了不少心思&#xff0c;曾还一度把电脑的注册表给误删了&#xff0c;导致电脑重装了系统&#xff0c;这是血的教训。我买了一本学习JAVA的书&#xff0c;看了里面的视频终于把编译环境给配置好了&#xff0c;其实非常简单。 开始…

jdk与jre

jdk与jre jdk1.8目录jdk1.8下的bin目录jdk1.8下的jre目录jdk1.8下的lib目录 jdk1.8目录 安装好的JDK路径下目录如下&#xff1a;有bin、db、include、jre、lib、COPYRIGHT、javafx-src.zip、LICENSE、README.html、release、src.zip、THIRDPARTYLICENSEREADME.txt、THIRDPARTY…

【jdk和jre】

JRE和JDK JRE (Java Runtime Environment)\n是Java程序的运行时环境&#xff0c;包含JVM和运行时所需要的核心类库。 我们想要运行一个已有的Java程序&#xff0c; 那么只需安装JRE即可。 JDK (Java Development Kit)\n是Java程序开发工具包&#xff0c;包含JRE和开发人员使用…

jdk没有jre的解决方法

jdk11以上没有jre的解决方法 小白篇 安装的jdk没有jre(JDK11以上版本)解决方法方法一&#xff1a;步骤1&#xff1a;步骤2&#xff1a; 注意:方法二&#xff1a;步骤1&#xff1a;步骤2&#xff1a; 值得注意的是&#xff1a;1.2. 安装的jdk没有jre(JDK11以上版本) 我猜你安装…

jdk、jre、jvm分别是什么?有什么联系?

目录 介绍 JDK和JRE JRE和JVM 介绍 JDK&#xff1a;是Java Development Kit的缩写&#xff0c;是Java的开发工具包&#xff0c;JDK是整个JAVA的核心。它提供了编译、运行Java程序所需的各种工具和资源。有了它&#xff0c;Java开发者就可以编译和运行自己的Java程序。它包含…

JDK、JRE、JVM 之间的关系

总结&#xff1a; 关系&#xff1a;JDK包含JRE JRE包含JVM JDK (Java Development Kit)----Java开发工具包&#xff0c;用于Java程序的开发。 JRE (Java Runtime Environment)----Java运行时环境&#xff0c;只能运行.class文件&#xff0c;不能编译。 JVM (Java Virtual M…

JDK、JRE和JVM之间的关系

作为一个Java开发者&#xff0c;只会用Java&#xff0c;却不知什么是JDK、JRE和JVM是什么&#xff0c;以及他们之间有什么联系。本文总结了JDK&#xff0c;JRE&#xff0c;JVM三者的关系与区别。 JDK、JRE和JVM之间的关系 一、JDK二、JRE三、JVM四、三者的联系五、三者的区别六…

Java基础 — JDK和JRE的区别和环境变量配置

1、JDK和JRE区别 JDK&#xff1a;java 程序开发工具包&#xff0c;包括编译器&#xff08;javac.exe&#xff09;、开发工具&#xff08;javadoc.exe、jar.exe、keytool.exe、jconsole.exe&#xff09;和更多的类库&#xff08;如tools.jar&#xff09;等。JRE&#xff1a;jav…