首页 > 编程语言 >C# CRC16计算校验域

C# CRC16计算校验域

时间:2023-02-10 15:00:33浏览次数:46  
标签:CRC16 C# ushort 校验 len crc int byte

/// <summary>
/// 计算校验域(CRC16)
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] CRC16(byte[] data)
{
int len = data.Length;
if (len > 0)
{
ushort crc = 0xFFFF;

for (int i = 0; i < len; i++)
{
crc = (ushort)(crc ^ (data[i]));
for (int j = 0; j < 8; j++)
{
crc = (crc & 1) != 0 ? (ushort)((crc >> 1) ^ 0xA001) : (ushort)(crc >> 1);
}
}
byte hi = (byte)((crc & 0xFF00) >> 8); //高位置
byte lo = (byte)(crc & 0x00FF); //低位置

return new byte[] { hi, lo };
}
return new byte[] { 0, 0 };
}

标签:CRC16,C#,ushort,校验,len,crc,int,byte
From: https://www.cnblogs.com/yuany69/p/17108939.html

相关文章

  • 【AGC】认证服务验证用户凭据失败问题
    ​问题背景:为了识别用户身份,开发者可以通过认证服务的ServerSDK验证已经颁发的用户凭据并且检查用户凭据是否已经撤销,可是在客户端认证成功后,使用文档中的代码进行验证时......
  • [THUPC2021 初赛] 切切糕
    个人思路:从小往大切,感性理解一下。由于每个人都足够聪明,博弈dp只有后效型而没有前效性,所以从固定的最终状态倒序往前dp,得到初始状态的答案。状态:\(dp_{i,j}\)表示还......
  • 工业SBC单板计算机坚固的特点
    1.工业级标准工业SBC在部署到崎岖边缘时遵循严格的质量保证指南和标准,如宽工作温度(-40~75°C)、fTPM以及FCC和CE认证。这些功能是通过精心挑选的组件实现的,这些组件既能提供......
  • react 捕获异常并处理
     //@ts-nocheckimportReactfrom'react'classErrorBoundaryextendsReact.Component{constructor(props){super(props);this.state={error:......
  • python 中pip下载包报Fatal error in launcher错误
    背景:通常找python包的时候直接用下边这句话就可以了不用每次到处找需要的包。pipinstallmath问题:但是今天使用的时候,出现下面这个问题:Fatalerrorinlauncher:U......
  • 基于 `CommonJS` 谈谈前端模块化
    基于CommonJS谈谈前端模块化前端模块化的内容贯穿我们平时的开发工作,最早的AMD等模块化组织方式现在已经很少使用,本课程基于目前最常见的CommonJS(以下简称为CMJ)出......
  • 重写Collections集合的排序比较CompareTo方法
    Collections.sort()使用该方法实际是重写Comparator接口的compare方法实现排序://传入参数list集合,Comparator接口T:list的元素类型//如List<Map<String,Object>>lis......
  • Code::Blocks 2023.01 全中文汉化-优化版
    Code::Blocks是一款开放源码、功能全面的跨平台集成开发环境(IDE),通过集成相应的编译器,可以支持使用广泛的C和C++程序开发。而且通过集成各种插件,可以实现各种扩展功能。......
  • Cannot resolve symbol 'AppCompatActivity'
    1、Cannotresolvesymbol'AppCompatActivity'依赖时依赖库不对 implementation'com.android.support:appcompat-v7:28.0.0'   implementation'androidx.appc......
  • CentOS查看文件夹大小
    1、最简单的查看方法可以使用ls-ll、ls-lh命令进行查看,使用ls-ll,会显示成字节大小,而ls-lh会以KB、MB等为单位进行显示  2、查询当前目录总大小可以使用du-sh,其中s......