关于校验码的算法

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

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

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 校验,这种都需要根据说明资料按照要求计算就好了.

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

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

相关推荐
Minecraft红客8 分钟前
ai_dialogue_framework项目1.0(纯原创)
c++·测试工具·电脑
必胜刻22 分钟前
复原 IP 地址(回溯算法)
tcp/ip·算法·深度优先
YGGP37 分钟前
【Golang】LeetCode 5. 最长回文子串
算法·leetcode
挖矿大亨1 小时前
C++中的赋值运算符重载
开发语言·c++·算法
Liu-Eleven1 小时前
Qt/C++开发嵌入式项目日志库选型
开发语言·c++·qt
qq_433554541 小时前
C++区间DP
c++·算法·动态规划
saber_andlibert1 小时前
【C++转GO】文件操作+协程和管道
开发语言·c++·golang
Halo_tjn1 小时前
Java IO流实现文件操作知识点
java·开发语言·windows·算法
历程里程碑1 小时前
滑动窗口解法:无重复字符最长子串
数据结构·c++·算法·leetcode·职场和发展·eclipse·哈希算法
Geoffwo1 小时前
归一化简单案例
算法·语言模型