关于校验码的算法

最近工作遇到和校验码打交道的地方,很多地方都会生成校验码.校验码的计算方法也是多种多样的,但是根本不离其宗.

这里我们介绍几种常用的校验码.

1.异或校验码.

听名字就会知道,需要做异或运算.XOR算法,这个是按照字符做异或运算,最终得到一个异或校验码.

异或,相同为0,不相同位1,下面这个算法就是异或之后输出结果我们用int型输出数据.

void XOR(char* p,int nsize,int &x)

{

复制代码
for(int i=0;i<nsize;i++)
{
	if(i==0)
	{	x =p[i];
	}
	else
	{
		x^=p[i];
	}

}

}

2.和校验

.算法上就是求和,我们把上面的算法稍微修改一下就是求和,把异或运算改成求和运算就好了.

void XOR(char* p,int nsize,int &x)

{

复制代码
for(int i=0;i<nsize;i++)
{
	if(i==0)
	{	x =p[i];
	}
	else
	{
		x+=p[i];
	}

}

}

3.CRC16 校验,这种都需要根据说明资料按照要求计算就好了.

校验码说简单也简单,说复杂也是复杂,关键是看你怎么使用,目前我们常见的就是异或和求和计算校验码.

仅记录工作中的小知识点.!!!

相关推荐
醉城夜风~几秒前
(超详细)C++多态(Polymorphism)
开发语言·c++
Scabbards_7 分钟前
面试Leetcode - 算法合集
算法·leetcode·面试
chuan.bai13 分钟前
Java RAG 实战附录:qwen3 与 bge-m3 模型切换指南
java·人工智能·算法
wuyk55513 分钟前
7.AVL 树:第一个自平衡二叉搜索树
开发语言·stm32·单片机·算法
rannn_11117 分钟前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
啊嘞嘞?20 分钟前
力扣(岛屿数量)
算法·leetcode
小小龙学IT20 分钟前
现代 C++ 内存管理与资源安全深度解析:从 RAII 到所有权模型
c++·安全
欧特克_Glodon30 分钟前
OpenCV计算机视觉开发入门与实践<十三>:图像转换之灰度图、二值图
c++·人工智能·opencv·计算机视觉
神仙别闹37 分钟前
基于C++ MFC实现动态分区分配存储管理
开发语言·c++·mfc
zander25838 分钟前
LeetCode 198. 打家劫舍
算法·leetcode·深度优先