xor异或校验(求一个VB编的串口通讯用的异或XOR校验程序(或函数))

:暂无数据 2026-07-12 18:00:01 :0

xor异或校验(求一个VB编的串口通讯用的异或XOR校验程序(或函数))

各位老铁们好,相信很多人对xor异或校验都不是特别的了解,因此呢,今天就来为大家分享下关于xor异或校验以及求一个VB编的串口通讯用的异或XOR校验程序(或函数)的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

求一个VB编的串口通讯用的异或XOR校验程序(或函数)

Private Sub cmdSendHex_Click() ’16进制发送
    Dim sj() As Byte
    Dim sj_Txt As String
    Dim i As Integer
    sj_Txt = TxtSend
    If Len(TxtSend) Mod 2 = 0 And Len(TxtSend) 《》 0 Then ’检验16进制字符串长
        ReDim sj(Len(sj_Txt) / 2 - 1)
        For i = 0 To Len(sj_Txt) - 1 Step 2
           sj(i / 2) = Val("&H" & Mid(sj_Txt, i + 1, 2))
        Next
        Print Hex(sj(0) Xor sj(1) Xor sj(2))
    Else
        MsgBox ("格式不对!")
    End If
    Text1 = TxtSend & Right("0" & Hex(sj(0) Xor sj(1) Xor sj(2)), 2)
End Sub
Private Sub Form_Load()
    TxtSend = "010308"

***隐藏网址***

请问异或取反校验是什么教研方式,具体方法是什么

xor异或运算公式
1、逻辑加法(“或”运算)
逻辑加法通常用符号“+”或“∨”来表示。逻辑加法运算规则如下:
0+0=0, 0∨0=0
0+1=1, 0∨1=1
1+0=1, 1∨0=1
1+1=1, 1∨1=1
从上式可见,逻辑加法有“或”的意义。也就是说,在给定的逻辑变量中,A或B只要有一个为1,其逻辑加的结果为1;两者都为1则逻辑加为1。
2、逻辑乘法(“与”运算)
逻辑乘法通常用符号“×”或“∧”或“·”来表示。逻辑乘法运算规则如下:
0×0=0, 0∧0=0, 0·0=0
0×1=0, 0∧1=0, 0·1=0
1×0=0, 1∧0=0, 1·0=0
1×1=1, 1∧1=1, 1·1=1
不难看出,逻辑乘法有“与”的意义。它表示只当参与运算的逻辑变量都同时取值为1时,其逻辑乘积才等于1。
3、逻辑否定(非运算)
逻辑非运算又称逻辑否运算。其运算规则为:
0=1 非0等于1
1=0 非1等于0
4、异或逻辑运算(半加运算)
异或运算通常用符号"⊕"表示,其运算规则为:
0⊕0=0 0同0异或,结果为0
0⊕1=1 0同1异或,结果为1
1⊕0=1 1同0异或,结果为1
1⊕1=0 1同1异或,结果为0
即两个逻辑变量相异,输出才为1
异或校验算法(又称为BCC校验)
常见的校验方法有:奇偶校验、循环冗余校验CRC、异或校验、校验和、汉明校验
搞了半天,异或校验就是偶校验
下面就是异或校验的算法,多用于串口通信。其它校验方法以后用到再研究吧!
#include "stdio.h"
void main()
{
int i;
//任意10个数值,也可以不是8位
unsigned char data={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};
unsigned char out;//用于保存异或结果
out=0x00;
for (i=0;i《sizeof(data);i++)
{
out^=data;
}
printf("原来的校验值:%X\n",out);
out^=(data改为新数据后计算新校验和的方法
out^=(data改为新数据后计算新校验和的方法
printf("修改后校验值:%X\n",out);
data=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确
data=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确
out=0x00;
for (i=0;i《10;i++)
{
out^=data;
}
printf("原始方法得出校验值:%X\n",out);
}

请问什么是异或校验

异或校验算法(又称为BCC校验)

下面就是异或校验的算法,多用于串口通信:

#include "stdio.h" 

void main() 

{ 

int i; 

//任意10个数值,也可以不是8位 

unsigned char data={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD}; 

unsigned char out;//用于保存异或结果 

out=0x00; 

for (i=0;i《sizeof(data);i++) 

{

out^=data; 

} 

printf("原来的校验值:%X\n",out); 

out^=(data改为新数据后计算新校验和的方法 

out^=(data改为新数据后计算新校验和的方法 

printf("修改后校验值:%X\n",out); 

data=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确  

data=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确 

out=0x00; 

for (i=0;i《10;i++) 

{

out^=data; 

} 

printf("原始方法得出校验值:%X\n",out); 

}

作用:

防止自己的程序被篡改。

有些可执行程序,当被改了资源时再运行会有文件已损坏的提示,这就是使用了数据校验。本例是用md5做为数据校验的算法。当然你可以使用个性化的比如des作为数字签名,那样安全性更高。

扩展资料:

最简单的检验

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。

奇偶校验Parity Check

实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

md5校验和数字签名

实现方法:主要有md5和des算法。

适用范围:数据比较大或要求比较高的场合。如md5用于大量数据、文件校验,des用于保

密数据的校验(数字签名)等等。

应用例子:文件校验、银行系统的交易数据

参考资料:百度百科-数据校验

c# VS求异或校验和的问题

1)Encoding.ASCII.GetBytes(……)得到字节数组,数组中的每个元素在计算机内部都是以二进制格式存储的(其实计算机内存中所有类型的数据都是以二进制格式存储的!)

2)可以用10进制、16进制来表达或输出这些二进制数据

3)C#的异或操作是基于二进制按位操作

-----

不知道你XOR校验和的具体算法规定。

以下是在通信过程中,用XOR求校验和最常用方法:

// s是待校验数据(字符串)
string s = "abcdef"; 
//获取s对应的字节数组
byte b = Encoding.ASCII.GetBytes(s); 
// xorResult 存放校验结果。注意:初值去首元素值!
byte xorResult = b;   
// 求xor校验和。注意:XOR运算从第二元素开始
for(int i=1; i《b.Length; i++)
{
    xorResult ^= b;
}
// 运算后,xorResult就是XOR校验和的结果!

RAID 5的校验

RAID5校验位算法原理
P=D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
XOR(Exclusive OR)的校验原理如下表: A值 B值 Xor结果 0 0 0 1 0 1 0 1 1 1 1 0 这里的A与B值就代表了两个位,从中可以发现,A与B一样时,XOR结果为0,A与B不一样时,XOR结果就是1,而且知道XOR结果和A与B中的任何一个数值,就可以反推出另一个数值。比如A为1,XOR结果为1,那么B肯定为0,如果XOR结果为0,那么B肯定为1。这就是XOR编码与校验的基本原理。

异或( xor)是什么意思啊

1、异或(xor)是一个数学运算符。它应用于逻辑运算。

2、异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

3、如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

4、逻辑异或运算简称异或。英文为exclusive OR,或缩写成xor。

5、异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

扩展资料

一、运算法则

1、a ⊕ a = 0

2、a ⊕ b = b ⊕ a

3、a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;

4、d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.

5、a ⊕ b ⊕ a = b

二、逻辑表达式:F=AB’⊕A’B((AB’⊕A’B)’=AB⊙A’B’,⊙为“同或”运算)

和校验异或校验哪个更好

和校验好。
和校验又称累加和校验。和校验按每个字节,计算累加和。异或校验定义初值,按每个字节异或,求结果。异或校验又称异或和校验或者BCC校验。BCCcheck是比较常用的串口数据校验。检验和的概念一般体现在8bit长度的字符数组。注意异或校验是异或运算,需要先强制把字符转换成整形数据。
校验,是一个数学术语,是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。分析国内外对校验的用法,其含意基本相同,它与检定和校准均有一定联系又有明显区别。它不具有法制性与校准相同,它在技术操作内容上又与检定有共性,一般可进行校准,也可以对其它有关性能进行规定的检验,并最终给出合格性的结论。这一术语有时是很必要的,建议在有关术语定义中应当给校验一个正式的位置,以统一和规范其使用。

关于xor异或校验,求一个VB编的串口通讯用的异或XOR校验程序(或函数)的介绍到此结束,希望对大家有所帮助。

xor异或校验(求一个VB编的串口通讯用的异或XOR校验程序(或函数))

本文编辑:admin

更多文章:


mariadb忘记密码(mysql用户密码忘记了怎么办)

mariadb忘记密码(mysql用户密码忘记了怎么办)

大家好,mariadb忘记密码相信很多的网友都不是很明白,包括mysql用户密码忘记了怎么办也是一样,不过没有关系,接下来就来为大家分享关于mariadb忘记密码和mysql用户密码忘记了怎么办的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月15日 07:50

mysql端口号(如何查看自己数据库的端口号)

mysql端口号(如何查看自己数据库的端口号)

“mysql端口号”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看mysql端口号(如何查看自己数据库的端口号)!

2026年10月15日 06:30

printf打印16进制(C语言 十六进制怎么输出)

printf打印16进制(C语言 十六进制怎么输出)

大家好,今天小编来为大家解答以下的问题,关于printf打印16进制,C语言 十六进制怎么输出这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 06:00

avantage怎么设置为中文(Avantage安装丢失GIT)

avantage怎么设置为中文(Avantage安装丢失GIT)

大家好,如果您还对avantage怎么设置为中文不太了解,没有关系,今天就由本站为大家分享avantage怎么设置为中文的知识,包括Avantage安装丢失GIT的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月15日 03:00

ospf协议的作用是什么(OSPF路由协议的作用是什么)

ospf协议的作用是什么(OSPF路由协议的作用是什么)

“ospf协议的作用是什么”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看ospf协议的作用是什么(OSPF路由协议的作用是什么)!

2026年10月15日 02:40

方案对比特效js(在一个网页中如何实现两个JS特效)

方案对比特效js(在一个网页中如何实现两个JS特效)

各位老铁们好,相信很多人对方案对比特效js都不是特别的了解,因此呢,今天就来为大家分享下关于方案对比特效js以及在一个网页中如何实现两个JS特效的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月15日 02:10

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

今天给各位分享登陆视频监控网页时提示activex控件未注册,怎么解决的知识,其中也会对登陆视频监控网页时提示activex控件未注册,怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:30

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

今天给各位分享用C语言编程学生信息管理系统!的知识,其中也会对用C语言编程学生信息管理系统!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:20

excel连接sql数据库教程(excel怎么连接sql数据库)

excel连接sql数据库教程(excel怎么连接sql数据库)

本篇文章给大家谈谈excel连接sql数据库教程,以及excel怎么连接sql数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月14日 19:40

null s brawl(null和空字符有区别吗)

null s brawl(null和空字符有区别吗)

今天给各位分享null和空字符有区别吗的知识,其中也会对null和空字符有区别吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 19:00

最近更新

可信验证系统(什么是可信云认证)
2026-10-15 10:00:23 浏览:0
广告推广app(常见的app推广方式)
2026-10-15 09:20:01 浏览:0
热刺vs马赛比赛(热刺赛程比分)
2026-10-15 09:10:01 浏览:0
热门文章

标签列表