当前位置: 首页 > news >正文

C# 异或校验算法

C# 的异或校验算法 直接上代码

   public partial class FormCRC : Form
    {
        public FormCRC()
        {
            InitializeComponent();
        }

        private void FormCRC_Load(object sender, EventArgs e)
        {

        }
        /// <summary>
        /// CRC异或校验 
        /// </summary>
        /// <param name="cmdString">命令字符串</param>
        /// <returns></returns>
        private static string CRC(string cmdString)
        {
            try
            {
                //CRC寄存器
                int CRCCode = 0;
                //将字符串拆分成为16进制字节数据然后两位两位进行异或校验
                for (int i = 1; i < cmdString.Length / 2; i++)
                {
                    string cmdHex = cmdString.Substring(i * 2, 2);
                    if (i == 1)
                    {
                        string cmdPrvHex = cmdString.Substring((i - 1) * 2, 2);
                        CRCCode = (byte)Convert.ToInt32(cmdPrvHex, 16) ^ (byte)Convert.ToInt32(cmdHex, 16);
                    }
                    else
                    {
                        CRCCode = (byte)CRCCode ^ (byte)Convert.ToInt32(cmdHex, 16);
                    }
                }
                return Convert.ToString(CRCCode, 16).ToUpper();//返回16进制校验码
            }
            catch
            {
                throw;
            }
        }

        private void btnConvert_Click(object sender, EventArgs e)
        {
            try
            {
                txtCRCCode.Text = CRC(txtCMDString.Text.Replace(" ", ""));
            }
            catch
            {
                MessageBox.Show("校验失败,请检查字符串是否包含特殊字符");
            }
        }
    }

  执行结果:

 

转载于:https://www.cnblogs.com/dearbeans/p/9716734.html

相关文章:

  • gitbook.explore更新升级了, 不能再搜索了
  • 通过flat.vmdk恢复esxi虚拟机
  • MFS分布式存储部署
  • 使用shell脚本自动安装Apache2.4.35
  • JAVA 同步实现原理
  • Java Agent 学习笔记
  • mysql如何直接查出从1开始递增的数
  • GlassFish新纪元
  • 基于树莓派的桌上足球计分器
  • C# 高级编程03----细节内容
  • mongodb之 oplog 日志详解
  • 动态库空间优化
  • 贝叶斯分类器
  • 【完整教程】新版直播频道上线,马上开始创建你的直播吧!
  • 如何用三个月学会python?
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • CentOS 7 防火墙操作
  • HTML中设置input等文本框为不可操作
  • IDEA 插件开发入门教程
  • leetcode-27. Remove Element
  • 浮动相关
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 警报:线上事故之CountDownLatch的威力
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 类orAPI - 收藏集 - 掘金
  • 微信小程序实战练习(仿五洲到家微信版)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 我们雇佣了一只大猴子...
  • ​iOS实时查看App运行日志
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C语言)字符分类函数
  • (pojstep1.3.1)1017(构造法模拟)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二)linux使用docker容器运行mysql
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (算法)Travel Information Center
  • (一)插入排序
  • (转)Sql Server 保留几位小数的两种做法
  • .equals()到底是什么意思?
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 材料检测系统崩溃分析
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .Net中的集合
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .py文件应该怎样打开?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • :中兴通讯为何成功